大家好,我是 "為了拿到金角獎盃而努力著" 的文毅青年 - Kai
我的準備工作,就是排除任何會成為藉口的因素。
上篇文章提到了 Open Close Principle 後,來談談常被提起一併討論的 Factory Method
中文常見名稱 工廠模式
到底很多人就會問了,Open Close Principle 跟 Factory Method 有哪裡不一樣?
說實在的,一開始 Kai 也不懂哪裡不同,因為兩者基本架構的 UML 一攤開幾乎一模一樣。
我覺得最好懂得應該是這樣:
不知道這樣的說明,大家是否可以懂兩者的區別?
還是要先強調一點: 設計模式 是為了做出更棒的架構,而沒有孰優孰劣之分。套句豹頭的話:「我全都要!」
類同 Open Close Principle,透過更換實體的方式,達到處理相同類型不同需求的目的,維持程式碼的整潔與節省開發人員的時間。
以下方圖為範例:
客戶端使用 CarService、放入參數、CarService 根據參數決定給出哪一個 Car 實體(TESLA or BMW),使用者並不需要知道其中判斷的邏輯,而是只要確保給出的類別是遵照 Car 介面的即可。
如此一來,客戶端可以藉由 CarService 進行快速、大量、重複物件的產生,這就是工廠模式的效果。
Design Pattern 的學習不只是制式的設計架構學習,諸如 Open Close Principle 這種單純的原理也是 Kai 學習的方向之一,正所謂多讀一點書、多走一點路,人生就會更寬闊一些。
針對 Design Pattern 的部分,在主頁的排版上也許會有點不同,目的是希望說透過一連串的方式,尋系漸進讓大家知道說,哪些部分是什麼設計? 中間如何串聯、變化等。
Design Pattern
,w3HexSchool