《PHP設計模式介紹》第三章 工廠模式(2)_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:《PHP設計模式介紹》第二章 值對象模式
      在所有的最簡單的程序中,大多數對象都有一個標識,一個重要的商業應用對象,例如一個Customer或者一個SKU,有一個或者更多的屬性---id,name,email地址,這樣可以把它從同一個類的其他實例區分開

      下面是工廠的另一種變化,你靜態地調用了一個工廠類:

      class Product {
      function getList() {
      $db =& DbConnectionBroker::getConnection();
      //...
      }
      }
      class DbConnectionBroker {
      function &getConnection() {
      return new MysqlConnection(DB_USER, DB_PW, DB_NAME);
      }
      }

      這里DbConnectionBroker::getConnection()產生的效果和前面的一樣 ,但這樣卻很有好處: 我們不必在每個需要連接數據庫的類中加入調用new MysqlConnection(DB_USER , DB_PW, DB_NAME)的方法。

      當然另一種變化就是引用一個外部工廠對象的資源,和這個對象定義了數據庫連接的參數:



      最后,一個工廠可以用一個函數合理的組織,然后實現:

      class Product {
      var $_db_maker;
      function setDbFactory(&$connection_factory) {
      $this->_db_maker =& $connection_factory;
      }
      function getList() {
      $db =& $this->_db_maker->getConnection();
      //...
      }
      }

      function &make_db_conn() {
      return new MysqlConnection(DB_USER, DB_PW, DB_NAME);
      }
      class Product {
      function getList() {
      $bar =& make_db_conn();
      //...
      }
      }

      下面是一個工廠的理想化執行的 UML 類圖:

      分享:《PHP設計模式介紹》第一章 編程慣用法
      學習一門新的語言意味著要采用新的慣用法。這章將介紹或者可能重新強調一些慣用法。你會發現這些慣用法在你要在代碼中實現設計模式時候是非常有用的。 在這里總結的許多編程慣用法都是很值得

      來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
      相關PHP教程