1、原由
從《大型網站架構系列》到《架構師入門實踐》,一直想把代碼設計和架構的知識進行總結,可是苦於精力和能力有限,推進起來比較緩慢。也屢次收到出版社的邀請,但遲遲沒有動筆。偶爾也會糾結作視頻仍是寫文章,考慮到業餘寫做和工做之間的平衡,仍是先以文章爲主吧。寫出來和你們交流,算是本身的一個知識總結,若是能幫到別人會更好。通過考慮,先出一個《設計模式系列》以後能夠再根據狀況總結一下別的。目標定下來,遲早都要走到,早走比晚走好。 --2019-09-14 於昌平
2、背景
設計模式是軟件開發中對代碼結構和代碼設計的經驗總結,學好設計模式是提升代碼質量和提高架構水平的關鍵要素。本系列文章旨在介紹經常使用的設計模式的應用和實踐,部分模式會結合JDK源碼,經常使用框架或工做場景進行實例介紹。不足之處,請批評指正,但願與你們共同進步。今天發佈系列文章大綱,以後會不按期發佈。
3、文章模式
爲了能更好的講解,設計模式講解文章採用如下結構而且增長了修訂記錄,用於文章發佈和修改記錄,方便查閱使用:
修訂記錄
修訂1: 2019-09-15 初版大綱V1.0發佈;
修訂2:
一、應用場景
1.1 生活問題
1.2 業務問題
二、解決方案
2.1 傳統方式
2.2 設計模式
三、模式講解
3.1 模式定義
3.2 UML圖
3.3 元素介紹
4.4 標準代碼演示
四、實際應用
4.1 SDK或框架源碼
4.2 業務案例
五、模式比較
5.1 優缺點
5.2 相關模式差別
4、文章大綱[大綱若調整,請以新版爲準]
第一篇、面向對象基礎知識
修訂記錄
修訂1: 2019-09-15 初版V1.0發佈;
修訂2:
一、何爲對象
1.1 對象
1.2 類[數據,行爲]
1.3 接口
1.4 抽象
二、三大特徵
2.1 繼承
2.2 封裝
2.3 多態
三、對象之間的關係
3.1 關聯關係
3.2 聚合,組合
3.3 高內聚,鬆耦合
四、UML類圖
4.1基本元素
4.2元素關係
4.3類圖示例
第二篇、面向對象設計原則
引言:比設計模式更重要的是設計思想和設計原則,基於這些原則,逐步產生了不一樣的設計模式。所以,學好設計模式的基礎是掌握基本的設計原則。
一、代碼抽象三原則
二、GRASP原則
三、SOLID原則
四、SOC原則
第三篇、設計模式分類和一句話設計模式總結
第四篇、單例模式
第五篇、工廠模式
第六篇、外觀模式
第七篇、適配器模式
第八篇、代理模式
第九篇、裝飾者模式
第十篇、策略模式
第十一篇、觀察者
第十二篇、模板方法
第十三篇、職責鏈
第十四篇、建造者模式
第十五篇、組合模式
第十六篇、橋接模式
第十七篇、命令
第十八篇、狀態
第十九篇、中介者
5、示例說明
一、本系列文章,示例語言採用Java,框架也會選擇java生態框架,好比Spring,Mybatis等;
二、設計模式與語言無關,本系列文章也適合其餘語言學習設計模式參考。