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