設(shè)計(jì)模式:抽象工廠模式
2021-03-30 23:43 作者:做架構(gòu)師不做框架師 | 我要投稿
什么是抽象工廠模式?
抽象工廠模式(英文:Abstract factory pattern)的實(shí)質(zhì)是“提供接口,創(chuàng)建一系列相關(guān)或獨(dú)立的對(duì)象,而不指定這些對(duì)象的具體類?!?/p>
一句話歸納
將一組對(duì)象實(shí)現(xiàn)細(xì)節(jié)和使用分離。

代碼示例
我是一個(gè)電腦廠商,我有兩個(gè)產(chǎn)品族,一個(gè)是“MAC”產(chǎn)品族,一個(gè)是“Win”產(chǎn)品族,在每一個(gè)產(chǎn)品族里,都會(huì)有不同的硬件(例如“鍵盤(pán)”和“鼠標(biāo)”)。


適用性
以下場(chǎng)景我建議你考慮使用:
一個(gè)產(chǎn)品族是有多個(gè)產(chǎn)品組合的;
提供一個(gè)產(chǎn)品類的庫(kù),所有的產(chǎn)品都是以同樣的接口出現(xiàn),從而使客戶端不依賴具體實(shí)現(xiàn)。

局限性
以下場(chǎng)景我建議你謹(jǐn)慎使用:
因?yàn)橐婚_(kāi)始就確定了需要?jiǎng)?chuàng)建產(chǎn)品的集合,所以拓展需要修改抽象工廠的接口,拓展比較難;
增加了系統(tǒng)的抽象和理解難度

抽象工廠和工廠方法的區(qū)別
工廠方法模式針對(duì)的是一個(gè)產(chǎn)品等級(jí)結(jié)構(gòu),而抽象工廠模式則是針對(duì)多個(gè)產(chǎn)品等級(jí)結(jié)構(gòu);
工廠方法模式提供的產(chǎn)品都是出自同一個(gè)接口,而抽象工廠方法模式提供的產(chǎn)品則是不同接口。

寫(xiě)在最后
最后,好兄弟,記得點(diǎn)贊,關(guān)注,謝謝。

標(biāo)簽: