你如何能輕松方便地建立這么" 復(fù)雜 " 的對(duì)象即操作中不需要粘貼復(fù)制呢?

解決方法

建立一個(gè)工廠(一個(gè)函數(shù)或一個(gè)類方法)來制造新的對(duì)象。為了理解工廠的用處, 試想以下的不同之處……

代碼:

復(fù)制代碼 代碼 " /> 成αv人,在线免费观看视频黄,黄色激情视频网站

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

介紹php設(shè)計(jì)模式中的工廠模式

問題

你如何能輕松方便地建立這么" 復(fù)雜 " 的對(duì)象即操作中不需要粘貼復(fù)制呢?

解決方法

建立一個(gè)工廠(一個(gè)函數(shù)或一個(gè)類方法)來制造新的對(duì)象。為了理解工廠的用處, 試想以下的不同之處……

代碼:

復(fù)制代碼 代碼如下:
$connection =& new MySqlConnection($user, $password, $database); 

……使你的代碼可擴(kuò)展和更簡潔……

復(fù)制代碼 代碼如下:
$connection =& create_connection(); 

后者的代碼片斷集中在和數(shù)據(jù)庫連接的create_connect()工廠上 ,就像剛才說的一樣,使創(chuàng)造數(shù)據(jù)庫連接的過程成為一個(gè)簡單的操作―就像new操作一樣。工廠模式的優(yōu)點(diǎn)就在創(chuàng)建對(duì)象上。 它的任務(wù)就是把對(duì)象的創(chuàng)建過程都封裝起來,然后返回一個(gè)所需要的新類。

想改變對(duì)象的結(jié)構(gòu)和建立對(duì)象的方式嗎? 你只需選擇對(duì)象工廠,對(duì)代碼的改變只需要一次就夠了。( 工廠模式的功能是如此強(qiáng)大, 它處于是應(yīng)用的底層, 所以在許多其余的復(fù)雜模式和應(yīng)用中它會(huì)不停地出現(xiàn)。)

樣本代碼

工廠模式封裝了對(duì)象的建立過程。 你可以在對(duì)象本身創(chuàng)建對(duì)象工廠或者是一個(gè)額外的工廠類――這要看你具體的應(yīng)用。讓我們看一個(gè)工廠對(duì)象的例子。

我們發(fā)現(xiàn)下面代碼中,數(shù)據(jù)庫連接的那部分屢次出現(xiàn):

復(fù)制代碼 代碼如下:
// php
class Product { 
function getList() { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME); 
//... 

function getByName($name) { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME); 
//... 

//... 

為什么這樣做不好? 數(shù)據(jù)庫連接的參數(shù)出現(xiàn)的地方太多了,當(dāng)你把這些參數(shù)設(shè)成常量,意味著你統(tǒng)一定義并對(duì)他們進(jìn)行賦值,顯然這種做法不是很妥當(dāng):

你可以輕松地改變連接數(shù)據(jù)庫的參數(shù),但你不能增加或改變這些參數(shù)地順序,除非你把所有連接代碼都改了。
你不能輕松的實(shí)例化一個(gè)新類去連接另一種數(shù)據(jù)庫,比如說PostgresqlConnection。
這樣很難單獨(dú)測試和證實(shí)連接對(duì)象的狀態(tài)。
使用工廠設(shè)計(jì)模式,代碼將得到很大的改進(jìn):

復(fù)制代碼 代碼如下:
class Product { 
function getList() { 
$db =& $this->_getConnection(); 
//... 

function &_getConnection() { 
return new MysqlConnection(DB_USER, DB_PW, DB_NAME); 


先前的類中存在很多調(diào)用new MysqlConnection(DB_USER,  DB_PW,  DB_NAME)的方法,現(xiàn)在都被集中到的_getConnection()方法上。

php技術(shù)介紹php設(shè)計(jì)模式中的工廠模式,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩欧美一区二区三区 | 国产精品视频999 | 久久国产乱子伦免费精品 | 天天色踪合 | 亚洲福利在线视频 | 91热视频在线观看 | 免费高清小黄站在线观看 | 国产亚洲精品福利片 | 亚色在线播放 | 欧美特黄a级片 | 在线小毛片 | 在线a亚洲视频播放在线观看 | 欧美日韩另类在线观看视频 | 97精品伊人久久大香线蕉 | 国产自线一二三四2021 | 中文字幕日产每天更新40 | 四虎永久免费地址在线观看 | 国产一区二区三区国产精品 | 最近免费中文在线视频 | 天天综合五月天 | 国产综合一区二区 | a级精品九九九大片免费看 a加勒比一本东京 | 91精品国产免费青青碰在线观看 | 一级做a爰片性色毛片武则天五则 | 欧美成人免费全部观看天天性色 | 四虎影视在线影院4hutv | 在线视频亚洲一区 | 日本高清中文字幕一区二区三区a | 欧美日韩亚洲另类 | 黄色免费视屏 | 色哟哟视频网站 | 51精品视频免费国产专区 | 黄色网页在线播放 | 久久伊人成人 | 伊人婷婷涩六月丁香七月 | 91在线短视频 | 久久久噜久噜久久综合 | 九九视频九九 | 国产美女免费观看 | 国产欧美精品一区二区三区四区 | 日本精品高清一区二区不卡 |