定義:
為創(chuàng)建一組相關(guān)或者是相互依賴的對象提供一個接口廉油,而不需要指定他們的具體類。
我理解的:
一切基于抽象撩笆,假設(shè)生產(chǎn)汽車捺球,我們擬定汽車三大組成部分:發(fā)動機(jī)、輪胎夕冲、制動系統(tǒng)氮兵。首先不管什么汽車,三大件在汽車中擔(dān)任的職責(zé)是一樣的歹鱼,但是不同的汽車又在具體三大件上有不同泣栈。那么我們可以給予三大件的基礎(chǔ)共性把其抽象出來,同時汽車生產(chǎn)也可以抽象出來弥姻。
抽象工廠模式:
image.png
汽車生產(chǎn)抽象工廠:
image.png
抽象輪胎類:
image.png
抽象發(fā)動機(jī)類:
image.png
抽象制動系統(tǒng)類:
image.png
具體(普通)輪胎類:
image.png
具體(SUV)輪胎類:
image.png
發(fā)動機(jī)和制動系統(tǒng)實現(xiàn)類不在贅述秩霍;
汽車工廠實現(xiàn)類:
image.png
image.png
demo:
image.png
image.png
總結(jié):
抽象工廠方法模式的優(yōu)點(diǎn):
一個顯著的優(yōu)點(diǎn)是分離接口與實現(xiàn),客戶端使用抽象工廠來創(chuàng)建需要的對象蚁阳,而客戶端根本就不知道具體的實現(xiàn)是誰铃绒,客戶端只是面向產(chǎn)品的接口編程而已,使其從具體的產(chǎn)品實現(xiàn)中解耦螺捐,同時基于接口與實現(xiàn)的分離颠悬,使抽象該工廠方法模式在切換產(chǎn)品類時更加靈活矮燎、容易。
抽象工廠方法模式的缺點(diǎn):
上面我們也有所涉及赔癌,一是類文件的爆炸性增加诞外,二是不太容易擴(kuò)展新的產(chǎn)品類,因為每當(dāng)我們增加一個產(chǎn)品類就需要修改抽象工廠灾票,那么所有具體工廠類均會被修改峡谊。