iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0

參考資料:工廠方法與抽象工廠

https://ithelp.ithome.com.tw/upload/images/20201002/201292862NoseoArW4.jpg

圖片來源:https://unsplash.com/photos/_0JpjeqtSyg

前情提要:
前些時候,我們提到因為pizza店生意太好,因此決定到紐約州來開分店,現在為了讓客人體驗在地風味,因此決定Pizza的麵團、起司、配料等,要開始在地化,那麼假設每一次 new NYPizzaStore 我都需要 依序new出我想要的麵團、起司、配料,這樣等到開始展店,不僅開發,維護也會有許多麻煩,更不用說有時候會漏掉忘記new需要的類別,這時候抽象工廠就可以拿出來用了

什麼是抽象工廠?
引用作者的話,“用一個抽象工廠,定義一個創建產品族的介面,產品族裡面每個產品的具體類別,由繼承抽象工廠的實體工廠決定”,搭配作者用心的圖,我的理解是,我建立一個抽象的pizza原料工廠,裡頭定義了 createCheese() 、createDough()等方法,假設今天要展店紐約,因此我建立一個 NYPizza 原料工廠,並繼承自 pizza原料工廠,如此一來我必須實作抽象的pizza原料工廠,定義的方法,建立出紐約店的原料,這樣就不怕缺漏了

優點

  1. 隔離類別生成和使用
  2. 相同性質類別集中管理

缺點
1.在產品族加一個產品,會非常麻煩,因為原本已經繼承的子類,都要一起更改


上一篇
D18 新發現類世紀帝國手遊|hexonia
下一篇
D20 食記|安平美食推薦
系列文
30天|入門NestJs連載學習筆記26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言