工廠模式
基本介紹
簡單工廠模式是屬于建立型模式,是工廠模式的一種。簡單工廠模式是由一個工廠對象決定建立出哪一種産品類的執行個體。簡單工廠模式是工廠模式家族種最簡單實用的模式。
簡單工廠模式:定義了一個建立對象的類,由這個類來封裝執行個體化對象的行為(代碼)。
在軟體開發中,當我們會用到大量的建立某種、某類或者某批對象時,就會使用到工廠模式。
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