Abstract Factory(抽象工厂)--对象创建模式
Abstract Factory (抽象工廠)–對象創建模式
一、意圖
提供一個創建一系列相關或者相互依賴的接口,而無需指定它們具體的類。
二、動機
1.在軟件系統中,經常面臨著“一系列相互依賴的對象”的創建工 作;同時,由于需求的變化,往往存在更多系列對象的創建工作。
2.如何應對這種變化?如何繞過常規的對象創建方法(new),提供一 種“封裝機制”來避免客戶程序和這種“多系列具體對象創建工作” 的緊耦合?
三、適用性
1.一個系統要獨立于它的產品的創建、組合和表示時。
2.一個系統要由多個產品系列中的一個來配置時。
3.當你要強調一系列相關產品對象的設計以便進行聯合使用時。
4.當你提供一個產品類庫、而只想顯示它們的接口而不是實現時。
四、結構
五、效果
1.它分離了具體的類。
2.它使得易于交換產品系列。
3.它有利于產品的一致性。
4.難以支持新種類的產品。
六、實現
1.將工廠作為單件。
2.創建產品。
3.定義可擴展的工廠。
七、要點總結
1.如果沒有應對“多系列對象構建”的需求變化,則沒有必要使用 Abstract Factory模式,這時候使用簡單的工廠完全可以。
2.“系列對象”指的是在某一特定系列下的對象之間有相互依賴、 或作用的關系。不同系列的對象之間不能相互依賴。
3.Abstract Factory模式主要在于應對“新系列”的需求變動。其缺點在于難以應對“新對象”的需求變動。
4.所有餐品都將返回類型所給的相同的抽象接口返回給客戶。客戶將不能區分或對一個產品的類型進行安全的假定。如果一個客戶需要進行與特定的子類相關的操作,而這些操作卻不能通過抽象的接口得到。雖然可以實現一個向下類型轉型,但這并總是可行或安全的。
八、舉例說明
家具工廠,要建椅子、凳子、桌子等,有些客戶可能要木質的,有些客戶可能要竹制的,還有些藥塑料制的等,比較適合抽象工廠模式,根據具體不同(材質)系列工廠提供相應的產品。
本文為李建忠設計模式視頻的筆記以及《設計模式-可復用面向對象的軟件的基礎》和自己的部分見解
總結
以上是生活随笔為你收集整理的Abstract Factory(抽象工厂)--对象创建模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 减肥能喝蛋白粉吗
- 下一篇: Builder(生成器)--对象创建型模