抽象工厂模式的应用
抽象工廠模式廣泛用于軟件開發過程中?!对O計模式:可復用面向對象軟件的基礎》指出抽象工廠模式的意圖在于提供一系列相關或相互依賴對象的接口,而無需指定它們具體的類。該模式適用于以下情況:
(1)??? 一個系統要獨立于它的產品創建、組合和表示時;
(2)??? 一個系統要由多個產品系列中的一個來配置時;
(3)??? 當你要強調一系列相關的產品對象的設計以便進行聯合使用時;
(4)??? 當你提供一個產品類庫,而只想顯示它們的接口而不是實現時。
該模式將得到以下效果:
(1)??? 它分離了具體的類;
(2)??? 它使得易于交換產品系列;
(3)??? 它有利于產品的一致性;
但是,同時該模式難以支持新種類的產品,這是因為AbstractFactory接口確定了可以被創建的產品的集合。支持新種類的產品就需要擴展該工廠接口,這將涉及AbstractFactory類及其所有子類的改變。所以我們對該模式結構進行了一些修改,修改后結構類圖如下:
而軟件對接口顯示類的實例化過程交給界面顯示類工廠類(UserControlFactory),“工廠”則根據“Interface-ConcreteClass Map”提供的數據,自動創建軟件所需的界面顯示類實例。如此,只需更改配置文件而不需要修改代碼就可以實現對“組件X”到“組件Y”的切換,將大大簡化開發的工作量。
對“Interface-ConcreteClass Map”的來源,可以從兩個方面獲取:配置文件、具體類特性標記。
1)通過配置文件獲取“接口-類”鍵值對數據內容方法如下:
(1)配置文件內容如下:
(2)獲取配置文件數據方法
2)通過程序集類的特性標記獲取“接口-類”鍵值對數據內容方法如下:
3)通過接口類型創建對象實例函數如下
總結
- 上一篇: Reflection的getCaller
- 下一篇: 云服务器防火墙开放端口访问--电信云服务