“工廠方法模式”是對簡單工廠模式的進(jìn)一步抽象化,其好處是可以使系統(tǒng)在不修改原來代碼的情況下引進(jìn)新的產(chǎn)品,即滿足開閉原則。
優(yōu)點(diǎn):
1.用戶只需要知道具體工廠的名稱就可得到所要的產(chǎn)品,無須知道產(chǎn)品的具體創(chuàng)建過程你弦。
2.靈活性增強(qiáng),對于新產(chǎn)品的創(chuàng)建燎孟,只需多寫一個(gè)相應(yīng)的工廠類禽作。
3.典型的解耦框架。高層模塊只需要知道產(chǎn)品的抽象類揩页,無須關(guān)心其他實(shí)現(xiàn)類旷偿,滿足迪米特法則、依賴倒置原則和里氏替換原則。
缺點(diǎn):
1.類的個(gè)數(shù)容易過多狸捅,增加復(fù)雜度
2.增加了系統(tǒng)的抽象性和理解難度
3.抽象產(chǎn)品只能生產(chǎn)一種產(chǎn)品衷蜓,此弊端可使用抽象工廠模式解決。
應(yīng)用場景:
1.客戶只知道創(chuàng)建產(chǎn)品的工廠名尘喝,而不知道具體的產(chǎn)品名磁浇。如 TCL 電視工廠、海信電視工廠等朽褪。
2.創(chuàng)建對象的任務(wù)由多個(gè)具體子工廠中的某一個(gè)完成置吓,而抽象工廠只提供創(chuàng)建產(chǎn)品的接口。
3.客戶不關(guān)心創(chuàng)建產(chǎn)品的細(xì)節(jié)缔赠,只關(guān)心產(chǎn)品的品牌
ps:項(xiàng)目上的類需要單獨(dú)建立衍锚,不然會報(bào)錯(cuò)
https://github.com/a6202866/shejimoshi/tree/main/src/main/java/factoryPattern