《PHP設(shè)計(jì)模式介紹》第三章 工廠模式(2)_PHP教程
推薦:《PHP設(shè)計(jì)模式介紹》第二章 值對(duì)象模式在所有的最簡(jiǎn)單的程序中,大多數(shù)對(duì)象都有一個(gè)標(biāo)識(shí),一個(gè)重要的商業(yè)應(yīng)用對(duì)象,例如一個(gè)Customer或者一個(gè)SKU,有一個(gè)或者更多的屬性---id,name,email地址,這樣可以把它從同一個(gè)類(lèi)的其他實(shí)例區(qū)分開(kāi)
下面是工廠的另一種變化,你靜態(tài)地調(diào)用了一個(gè)工廠類(lèi):
class Product {
function getList() {
$db =& DbConnectionBroker::getConnection();
//...
}
}
class DbConnectionBroker {
function &getConnection() {
return new MysqlConnection(DB_USER, DB_PW, DB_NAME);
}
}
這里DbConnectionBroker::getConnection()產(chǎn)生的效果和前面的一樣 ,但這樣卻很有好處: 我們不必在每個(gè)需要連接數(shù)據(jù)庫(kù)的類(lèi)中加入調(diào)用new MysqlConnection(DB_USER , DB_PW, DB_NAME)的方法。
當(dāng)然另一種變化就是引用一個(gè)外部工廠對(duì)象的資源,和這個(gè)對(duì)象定義了數(shù)據(jù)庫(kù)連接的參數(shù):
最后,一個(gè)工廠可以用一個(gè)函數(shù)合理的組織,然后實(shí)現(xiàn):
| 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() { |

分享:《PHP設(shè)計(jì)模式介紹》第一章 編程慣用法學(xué)習(xí)一門(mén)新的語(yǔ)言意味著要采用新的慣用法。這章將介紹或者可能重新強(qiáng)調(diào)一些慣用法。你會(huì)發(fā)現(xiàn)這些慣用法在你要在代碼中實(shí)現(xiàn)設(shè)計(jì)模式時(shí)候是非常有用的。 在這里總結(jié)的許多編程慣用法都是很值得
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-《PHP設(shè)計(jì)模式介紹》第三章 工廠模式(2)
。