相關關鍵詞
關于我們
最新文章
PHP設計模式之工廠模式實例總結
本文實例講述了PHP設計模式之工廠模式。分享給大家供大家參考,具體如下:
使用工廠模式的目的或目標?
工廠模式的最大優(yōu)點在于創(chuàng)建對象上面,就是把創(chuàng)建對象的過程封裝起來,這樣隨時可以產(chǎn)生一個新的對象。
減少代碼進行復制粘帖,耦合關系重,牽一發(fā)動其他部分代碼。
通俗的說,以前創(chuàng)建一個對象要使用new,現(xiàn)在把這個過程封裝起來了。
假設不使用工廠模式:那么很多地方調(diào)用類a,代碼就會這樣子創(chuàng)建一個實例:new a(),假設某天需要把a類的名稱修改,意味著很多調(diào)用的代碼都要修改。
工廠模式的優(yōu)點就在創(chuàng)建對象上。
工廠模式的優(yōu)點就在創(chuàng)建對象上。建立一個工廠(一個函數(shù)或一個類方法)來制造新的對象,它的任務就是把對象的創(chuàng)建過程都封裝起來,
創(chuàng)建對象不是使用new的形式了。而是定義一個方法,用于創(chuàng)建對象實例。
每個類可能會需要連接數(shù)據(jù)庫。那么就將連接數(shù)據(jù)庫封裝在一個類中。以后在其他類中通過類名:
為什么引入抽象的概念?
想一想,在現(xiàn)實生活中,當我們無法確定某個具體的東西的時候,往往把一類東西歸于抽象類別。
工廠方法:
比如你的工廠叫做“香煙工廠”,那么可以有“七匹狼工廠”“中華工廠”等,但是,這個工廠只生廠一種商品:香煙;
抽象工廠:無法描述它到底生產(chǎn)什么產(chǎn)品,它生產(chǎn)很多類型的產(chǎn)品(所以抽象工廠就會生成子工廠)。
你的工廠是綜合型的,是生產(chǎn)“一系列”產(chǎn)品,而不是“一個”,比如:生產(chǎn)“香煙”,還有“啤酒”等。然后它也可以有派生出來的具體的工廠,但這些工廠都是生產(chǎn)這一系列產(chǎn)品,只是可能因為地域不一樣,為了適應當?shù)厝丝谖?,味道也不太一樣?/p>
工廠模式:理解成只生成一種產(chǎn)品的工廠。比如生產(chǎn)香煙的。
工廠方法:工廠的一種產(chǎn)品生產(chǎn)線 。比如鍵盤的生成過程。
別人會反駁:吃飽了沒事干,一定要修改類名稱呢?這個說不定。一般都不會去修改類名稱。
其實工廠模式有很多變體,抓住精髓才是關鍵:只要是可以根據(jù)不同的參數(shù)生成不同的類實例,那么就符合工廠模式的設計思想。
這樣子讓我聯(lián)想到框架中經(jīng)常會有負責生成具體類實例的方法供調(diào)用。
由于前面使用過phpcms,用phpcms的來幫助理解,更加好,如下:
pc_base:load_app_class("order"');//參數(shù)名稱就是類名稱。