第一:思維決定方式。
在GOF提及的23種設計模式中,有多種設計模式最後編寫出來的代碼非常相似,爲什麼它們又被歸類爲不同的設計模式呢?由於它們各自面對的問題不同,要解決的思考出發點不同,雖然最後採取的形式是相似的。
第二:多問問why,而不僅僅侷限於how。
多想想爲何就那樣,非它不可,而不是應該怎樣。
第三:面向對象的典型思維特徵:多態、繼承、重載、組合、封裝。
設計模式都是迎合這些目標,貫徹這些思維特徵,也能演化出自己的設計模式。
第四:學習把"行爲"抽象成對象。
對象不僅僅是簡單的實體,也可把某一類行爲抽象成爲一個對象。
第五:敢於把一個大的對象作爲參數傳遞。
在某些情況下,傳遞一個大的對象要比傳遞幾個簡單的參數更有效。
第六:設計模式不是極端的方案,而是在性能和複用可擴展之間做了一個折衷的權衡。
在某些情況下設計模式未必就是最好的方案,但設計模式應該是一個權衡得最好的方案。
很多時候並不是我們面對一個簡單的場景去試圖套某個模式,而是當我們用簡單方法解決不了時,訴諸於設計模式。
今天具體學習了一下三種設計模式:
策略模式:解決扁平化的問題;
裝飾模式:修飾已有功能;
訪問者模式:訪問者與被訪問者分工配合,解耦解決某個問題。