1. 模式設計模式
在必定環境中解決某一問題的方案,包括三個基本元素:問題、解決方案和環境。函數
2. 設計模式學習
(1)設計模式是一套反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解,保證代碼可靠性。毫無疑問,設計模式於系統是多贏的。spa
(2)設計模式使代碼編制真正工程化。設計模式是軟件工程的基石脈絡,如同橋樑的結構同樣。設計模式的基礎是多態。設計
1)實現多態的三個條件:繼承、父類指針(或引用)指向子類對象,虛函數重寫;代理
2)多態實現原理:VPTR指針和虛函數表。 C++編譯器爲每個含有虛函數的子類或父類提早分配一個VPTR指針,經過VPTR指針找到虛函數表,根據虛函數表找後來人寫的代碼。指針
3.學習設計模式的意義對象
提升職業素養,關注學員在行業內的長期發展。blog
4. 學習設計模式的方法繼承
(1)對於初學者:積累案例,大於背類圖。
(2)初級開發人員:多思考、多梳理,概括總結;尊重事務的認知規律,注意事務臨界點的突破,不可浮躁。
(3)中級開發人員:合適的開發環境,尋找合適的設計模式,解決問題;多應用;對經典組合設計模式的大量、自由的應用,要不斷的追求。
5. 設計模式的分類
分爲三大類建立型模式、構建型模式和行爲模式。
(1)建立型模式:一般和對象的建立有關,涉及到對象實例化的方式。(包括單例模式、工廠方法模式、抽象工廠模式、建造者模式和原型模式5種建立型模式)
(2)構建型模式:描述的是如何組合類和對象以得到更大的結構。(包括代理模式、裝飾者模式、適配器模式、橋接模式、組合模式、外觀模式、享元模式7種構建型模式)
(3)行爲模式:對類或者對象怎樣交互和怎樣分配職責進行描述。(包括模板模式、命令模式、責任鏈模式、策略模式、中介者模式、觀察者模式、備忘錄模式、訪問者模式、狀態模式、解釋器模式和迭代器模式共11種模式)
6. 設計模式基本原則
(1)最終目標:高內聚,低耦合。
(2)基本原則
下面將舉例介紹開放封閉原則、依賴倒置原則和迪米特法則三種(注:上圖紅色五角星標註原則)
1)開放封閉原則
案列圖:
2)依賴倒置原則
案列圖:
3)迪米特法則
案列圖: