抽象工廠模式

抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創(chuàng)建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。在抽象工廠模式中,接口是負責創(chuàng)建一個相關(guān)對象的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式提供對象。


抽象工廠模式


IDepartment

IDepartment:用于客戶端訪問,解除具體數(shù)據(jù)庫訪問的耦合。


SqlserverDepartment

SqlserverDepartment:用于SQLServer訪問的Department。


AccessDepartment

AccessDepartment:用于訪問Access的Department。


IFactory

IFactory:定義一個創(chuàng)建訪問User表對象的抽象工廠接口。


SqlServerFactory

SqlServerFactory:實現(xiàn)IFactory接口,實例化SQLServerUser和SQLServerDepartment。


AccessFactory

AccessFactory:實現(xiàn)IFactory接口,實例化AccessUser和AccessDepartment。

抽象模式的應(yīng)用:抽象工廠模式將具體產(chǎn)品的創(chuàng)建延遲到具體工廠的子類中,這樣將對象的創(chuàng)建封裝起來,可以減少客戶端與具體產(chǎn)品類之間的依賴,從而使系統(tǒng)耦合度低,這樣更有利于后期的維護和擴展,這真是抽象工廠模式的優(yōu)點所在,然后抽象模式同時也存在不足的地方。一個產(chǎn)品族中的多個對象設(shè)計成一起工作,它能保證客戶端始終只使用一個產(chǎn)品族中的對象。這對一些需要根據(jù)當前環(huán)境來決定其行為的軟件系統(tǒng)來說是非常實用的一種設(shè)計模式。

抽象模式的優(yōu)點:有利于更換產(chǎn)品系列,由于客戶端只依賴于抽象類,更換產(chǎn)品系列時,只需要更改一下具體工廠名就可以。

抽象模式的缺點:難以支持新種類的產(chǎn)品,這是因為抽象工廠接口確定了可以被創(chuàng)建的產(chǎn)品集合,支持新種類的產(chǎn)品就需要擴展該工廠接口,這將引起抽象工廠類及其所有子類的改變。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容