抽象工廠模式
用簡單的話來描述一下簡單工廠,工廠方法和抽象工廠最直觀的區別:
這樣說不夠直觀,下面用個例子來說明一下:
/** 抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。
* 抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。
* 抽象工廠模式可以向客戶端提供乙個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。
*/// 多個產品介面,用於產生產品族
inte***ce
box
inte***ce
tree
// 實現產品
class
bigbox
implements
box }
class
smallbox
implements
box }
class
bigtree
implements
tree }
class
smalltree
implements
tree }
// 工廠介面
inte***ce
builder
// 建立兩個工廠
class
bigbuilder
implements
builder
public
function
buildtree() }
class
smallbuilder
implements
builder
public
function
buildtree() }
// 呼叫
$bigbuilder
= new
bigbuilder();
$box
= $bigbuilder
->buildbox();
$box
->name();
$tree
= $bigbuilder
->buildtree();
$tree
->name();
$smallbuilder
= new
smallbuilder();
$box
= $smallbuilder
->buildbox();
$box
->name();
$tree
= $smallbuilder
->buildtree();
$tree
->name();
輸出結果:
big boxbig tree
small box
small tree
設計模式學習筆記 抽象工廠模式
定義 為建立一組相關或相互依賴的物件提供一組介面,而且無需指定它們的具體類。抽象工廠模式是工廠模式的公升級版本,因為它應對的是更加複雜的業務,即當有多個業務品種 業務分類時,通過抽象工廠模式產生需要的物件是一種非常好的解決方式。由於抽象工廠類較為複雜,我覺得使用乙個具體的例子,更能形象的表達這個模式...
設計模式學習筆記 抽象工廠模式
抽象工廠開始之前,我不得不先說一句,關於工廠方法,我以為不太常用來著。而實際上,想到當年在學校,老師在教三層的時候告訴我們,service 與 dao 層必須都要繼承自介面,並提供乙個實現類,只是神秘的一笑告訴我們,這對 有好處,然而一直到了學期結束也不知道有什麼好處。大概也不知道什麼時間,越寫越多...
抽象工廠模式 設計模式3之抽象工廠模式
工廠方法模式中工廠只負責同類產品的生產。比如電視機工廠不應該生產汽車。然而現實生活中有很多綜合型的工廠,比如有些電視工廠不僅生產電視機,還會生產與之配套的機頂盒。那麼抽象工廠模式隨之誕生,這種模式將考慮多種型別產品的生產。我們總結下 工廠方法模式只考慮成產同一等級級的產品抽象方法模式考慮生產多等級的...