天天看點

工廠模式

工廠模式

基本介紹

簡單工廠模式是屬于建立型模式,是工廠模式的一種。簡單工廠模式是由一個工廠對象決定建立出哪一種産品類的執行個體。簡單工廠模式是工廠模式家族種最簡單實用的模式。

簡單工廠模式:定義了一個建立對象的類,由這個類來封裝執行個體化對象的行為(代碼)。

在軟體開發中,當我們會用到大量的建立某種、某類或者某批對象時,就會使用到工廠模式。

classDiagram

class Pizza{

-prepare() void

-bake() void

-cut() void

-box() void

}

class SimpleFactory{

createPizza() Pizza

Pizza <|-- CheesePizza

Pizza <|-- GreekPizza

Pizza <|-- ChinaPizza

OrderPizza o-- SimpleFactory

OrderPizza2 o-- SimpleFactory

OrderPizza3 o-- SimpleFactory

SimpleFactory ..> Pizza

定義了一個建立對象的抽象方法,由子類決定要執行個體化的類。工廠方法模式将對象的執行個體化推遲到子類。

Pizza <|-- BJCheesePizza

Pizza <|-- BJPepperPizza

Pizza <|-- LDCheesePizza

Pizza <|-- LDPepperPizza

BJCheesePizza <.. BJOrderPizza

BJPepperPizza <.. BJOrderPizza

LDCheesePizza <.. LDOrderPizza

LDPepperPizza <.. LDOrderPizza

BJOrderPizza --|> OrderPizza

LDOrderPizza --|> OrderPizza

class OrderPizza{

<<abstract>>

抽象工廠模式:定義了一個interface用于建立相關或有依賴關系的對象簇,而無需指明具體的類。

抽象工廠模式可以将簡單工廠模式和工廠方法模式進行整合。

從設計層面看,抽象工廠模式就是對簡單工廠模式的改進(或者稱為進一步的抽象)。

将工廠抽象成兩層,AbsFactory(抽象工廠)和具體實作的工廠子類。程式員可以根據建立對象類型使用對應的工廠子類。這樣将單個的簡單工廠類變成了工廠簇,更利于代碼的維護和擴充。

BJCheesePizza <.. BJFactory

BJPepperPizza <.. BJFactory

LDCheesePizza <.. LDFactory

LDPepperPizza <.. LDFactory

class AbsFactory{

<<interface>>

BJFactory ..|> AbsFactory

LDFactory ..|> AbsFactory

AbsFactory --o OrderPizza

AbsFactory --o OrderPizza2

繼續閱讀