設計模式源起現(xiàn)實生活,譬如建筑設計師想要建造一棟建筑,他們會參照以往的圖紙或者建造方法來繪制新建筑的圖紙。將建筑師們所參照的這些圖紙以及設計歸納總結(jié)乃至升華出來的一種針對某一類問題解決方案的設計思想與理念就是我們熟知的設計模式。
軟件開發(fā)中的設計模式則是一套針對某一問題的一套設計良好的解決方案,是前輩們的心血與結(jié)晶。其優(yōu)點有三:
-
可以大大縮短開發(fā)時間
- 經(jīng)過良好的設計以及實踐檢驗
- 是一套標準的解決方法
- 針對類似的問題行之有效
-
減少開發(fā)成本
- 提高代碼可復用性
- 提高健壯性
- 提高可維護性
-
提高可交流性
- 經(jīng)過良好定義,易于理解和調(diào)試
- 團隊新成員更容易理解代碼結(jié)構(gòu)及上手
根據(jù)設計意圖分為Creational(建造型)、Structral(結(jié)構(gòu)型)、Behavioral(行為型)三種。使用設計模式的精髓在于學習與借鑒而不是一味的照搬,只有真正理解其設計意圖,進而融匯貫通,方為真正領(lǐng)悟。