抽象工廠模式
抽象工廠(AbstractFactory)模式的定義:
是一種為訪(fǎng)問(wèn)類(lèi)提供一個(gè)創(chuàng)建一組相關(guān)或相互依賴(lài)對(duì)象的接口爷速,且訪(fǎng)問(wèn)類(lèi)無(wú)須指定所要產(chǎn)品的具體類(lèi)就能得到同族的不同等級(jí)的產(chǎn)品的模式結(jié)構(gòu)。
抽象工廠模式是工廠方法模式的升級(jí)版本,工廠方法模式只生產(chǎn)一個(gè)等級(jí)的產(chǎn)品,而抽象工廠模式可生產(chǎn)多個(gè)等級(jí)的產(chǎn)品。
使用抽象工廠模式一般要滿(mǎn)足以下條件。
1.系統(tǒng)中有多個(gè)產(chǎn)品族,每個(gè)具體工廠創(chuàng)建同一族但屬于不同等級(jí)結(jié)構(gòu)的產(chǎn)品咒吐。
2.系統(tǒng)一次只可能消費(fèi)其中某一族產(chǎn)品,即同族的產(chǎn)品一起使用属划。
抽象工廠模式除了具有工廠方法模式的優(yōu)點(diǎn)外恬叹,其他主要優(yōu)點(diǎn)如下。
1.可以在類(lèi)的內(nèi)部對(duì)產(chǎn)品族中相關(guān)聯(lián)的多等級(jí)產(chǎn)品共同管理同眯,而不必專(zhuān)門(mén)引入多個(gè)新的類(lèi)來(lái)進(jìn)行管理绽昼。
2.當(dāng)需要產(chǎn)品族時(shí),抽象工廠可以保證客戶(hù)端始終只使用同一個(gè)產(chǎn)品的產(chǎn)品組须蜗。
3.抽象工廠增強(qiáng)了程序的可擴(kuò)展性硅确,當(dāng)增加一個(gè)新的產(chǎn)品族時(shí),不需要修改原代碼明肮,滿(mǎn)足開(kāi)閉原則菱农。
其缺點(diǎn)是:當(dāng)產(chǎn)品族中需要增加一個(gè)新的產(chǎn)品時(shí),所有的工廠類(lèi)都需要進(jìn)行修改柿估。增加了系統(tǒng)的抽象性和理解難度循未。
https://github.com/a6202866/shejimoshi/tree/main/src/main/java/abstractFactoryPattern