抽象工廠模式 Abstract Factory Pattern - BasuyaMuknana/java-design-pattern GitHub Wiki
抽象工廠模式 Abstract Factory Pattern
示意圖
wiki_images/abstractfactory_pattern_uml_diagram.jpg
謫要
- 與工廠模式相比,抽象工廠可以"生產"不同類別的物件。
- 此模式中,所有工廠類別(ShapeFactory, ColorFactory)都需繼承一個抽象工廠類別(AbstractFactory)。
- 抽象工廠類別中需宣告生產各種物件的抽象方法。
- 所有工廠類別需實作繼承自抽象工廠的抽象方法,非自己生產的類別回傳null。(但這樣子擴充性可能不佳,因為系統每新增一個新的工廠類別時,由於要在抽象工廠加入抽象生產方法,導致其他工廠類別也要一起增加實作新的抽象生產方法)
- 使用上需額外一個工廠選擇器(FactoryProducer),來取得所需要的工廠物件。