日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

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

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

推薦:《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() {
return new MysqlConnection(DB_USER, DB_PW, DB_NAME);
}
class Product {
function getList() {
$bar =& make_db_conn();
//...
}
}

下面是一個(gè)工廠的理想化執(zhí)行的 UML 類(lèi)圖:

分享:《PHP設(shè)計(jì)模式介紹》第一章 編程慣用法
學(xué)習(xí)一門(mén)新的語(yǔ)言意味著要采用新的慣用法。這章將介紹或者可能重新強(qiáng)調(diào)一些慣用法。你會(huì)發(fā)現(xiàn)這些慣用法在你要在代碼中實(shí)現(xiàn)設(shè)計(jì)模式時(shí)候是非常有用的。 在這里總結(jié)的許多編程慣用法都是很值得

來(lái)源:模板無(wú)憂//所屬分類(lèi):PHP教程/更新時(shí)間:2008-08-22
相關(guān)PHP教程