模式的分類:
?????1 ?架構(gòu)模式:描述軟件系統(tǒng)基本的結(jié)構(gòu)組織策略。
?????2 設(shè)計模式:設(shè)計模式描述的是在軟件系統(tǒng)的某一局部中不斷重復的核心解決方案。
?????3 GRASP:通用職責分配軟件模式。
設(shè)計模式的精髓(三原則):
??????1 設(shè)計模式最根本的意圖是適應需求變化
????????? ???我們應只對變化或者可能變化的部分使用設(shè)計模式,對于不變的部分濫用設(shè)計模式就會造成“過度設(shè)計”。
?????? 2 針對接口編程,而不要針對實現(xiàn)編程
??????????????針對接口編程的組件不需要知道對象的具體實現(xiàn)和類型,只需要知道抽象類定義了哪些接口,這減少了實現(xiàn)上的依賴關(guān)系。
???????3 優(yōu)先使用聚合,而不是繼承
???????????????繼承反映的是類之間的“。。。是一個。。。”的關(guān)系,聚合關(guān)系反映的是類之間的“。。。有一個。。。”或者“。。。包含一個。。。”的關(guān)系。在不違反這個原則的條件下優(yōu)先使用聚合而不是繼承。同時,聚合也必須和接口及相關(guān)的繼承結(jié)構(gòu)協(xié)同使用。