續上篇文章Factory design pattern所述,假如未來有更多口味的pizza,我們就會有超多的factory class,抽象工廠就是為了解決這樣的問題而誕生!
簡言之,抽象工廠可以把他想像成一個什麼都生產的工廠,也就是我們會有一個pizza廚房,什麼口味的pizza都能生產!
修改後完整程式碼如下:





假如我今天開了一間店叫VicKitchen,裡面目前只有賣pizza,未來可能會賣其他產品。
因為本質不是披薩店,而是一間會製作披薩的店,因此PizzaStore為interface,VicKitchen裡面本身可以製作其他料理,未來可以自己增加method。
這樣的設計會發現剛剛的Factory class都不見了,apple pizza factory, cheese pizza factory都不再存在,少了很多檔案呢! 未來如果有新口味的pizza,也能夠集中管理。
本筆記參考:
1. https://skyyen999.gitbooks.io/-study-design-pattern-in-java/content/abstractFactory1.html




















