李建鍾老師的視頻鏈接
什麼是設計模式
1.可複用
2.面向對象
目標
管理變化,提高複用
什麼時候不用模式
- 代碼可讀性很差時
- 需求理解還很淺時
- 變化沒有顯現時
- 不是系統的關鍵依賴點
- 項目沒有複用價值時
- 項目將要發佈時
經驗之談
- 不要爲模式而模式
- 關注抽象類&接口
- 理清變化點和穩定點
- 審視依賴關係
- 要有Framework和Application的區隔思維
- 良好的設計是演化的結果
如何解決複雜性?
- 分解
人們面對複雜性有一個常見的做法:即分而治之,將大問題分解爲多個小問題,將複雜問題分解爲多個簡單問題。(不容易複用,C語言常用的方法之一)
- 例子:繪製形狀
每個形狀(線、矩形、圓形等)寫一個處理類,繪製函數里根據用戶設置的形狀各自調用對應形狀的處理函數。
- 抽象
更高層次來講,人們處理複雜性有一個通用的技術,即抽象。由於不能掌握全部的複雜對象,我們選擇忽視它的非本質細節,而去處理泛化和理想化了的對象模型。
- 例子:繪製形狀
對於所有形狀,都可抽象表示爲“Shape”,泛化爲一個“Draw”的對象模型。