27. Comparison of Design Patterns
關於 Comparison of Design Patterns 本篇將討論以下幾個問題
1. 前言
2. 三大分類各自的意圖
3. Comparison
1. 前言
Design Patterns 這系列終於到了最後一篇,經過前面一連串的洗禮後是否覺得每個 Pattern 個別理解都沒什麼問題,但參在一起做撒尿牛丸又說不太出其間的差異呢?
每個 Design Pattern 都有其想解決的問題跟使用上的缺陷,所以在能夠靈活運用之前,有些方法可以幫助我們找到適合的 Pattern
- 釐清目前想解決的問題
- 依據 Pattern 的「意圖」來尋找適合的 Pattern
- 套用時若需要變形,是否會有什麼新的缺點
- 套用後是否有明顯的好處,且大於缺點
一一確認完之後,除了能更加熟悉之外,也避免了為套用而套用造成的系統複雜度提升跟擴充困難的問題。
但若是因為未來還不確定的需求而不知道該不該套用,我的建議是:未來的需求就交給重構來解決,專注於當下的問題即可。
2. 三大分類各自的意圖
類型 |
|
創建型 |
負責物件的創建,將創建與使用解耦 |
結構型 |
class 或物件的組合,將不同的職責解耦 |
行為型 |
class 或物件間的交互行為,將不同的行為解耦 |
3. Comparison
總結
Design Patterns 應用的深度與廣度都不是看完本系列就能掌握的,還有很多細節的應用並未提及,全篇都圍繞在基本概念的理解上,至此相信已經能解決部分問題了,若是想更深入學習 Design Patterns 可以購買書籍來閱讀,推薦以下兩本。
參考資料
- Design Patterns
- 大話設計模式
- dofactory
- Refactoring.Guru
新手上路,若有錯誤還請告知,謝謝