1、簡介
設計模式.就我的而言.說白了就是讓代碼直接的耦合度沒那麼高.編程
這樣系統的拓展性、伸縮性更強,畢竟功能的需求突飛猛進.每天改改改.設計模式
因此有一個良好的架構,在改需求時能夠提升你的效率.架構
Jdk源碼中io流就用到了裝飾者模式.還有基於接口的動態代理模式invovation框架
Spring框架中也用了單例模式、代理模式ui
2、分類
共23種,分三大類spa
1.建立型(5種):把對象的實例化過程抽象出來,把對象的引用和建立過程抽離出來,達到鬆耦合的效果.net
對對象建立過程的各類問題和解決方案的總結設計
工廠模式、抽象工廠、單例模式、建造者模式、原型模式代理
2.結構型(7種):是針對軟件設計結構的總結,關注於類、對象繼承、組合方式的實踐經驗對象
適配模式、橋接模式、裝飾者模式、外觀模式、組合模式、亨元模式
3.行爲型(11種):是從類或對象之間交互、職責劃分等角度總結的模式
代理模式、觀察者模式、策略模式、模板方法模式、迭代器模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式
3、六大原則
1.開閉原則
對拓展開放、修改關閉
2.里氏替換原則
父類的引用指向子類的對象
3.控制反轉原則
針對接口編程,不依賴具體
4.接口隔離原則
每一個接口各自的職責,必要時使用多個接口
5.迪米特法則
一個實體儘可能少地與其餘實體間發生相互做用.最好要有層級引用關係
6.合成複用原則
儘可能使用組合/聚合的方式,而不是使用繼承
4、模式傳送門
4.1建立型
工廠模式(Factory):http://www.javashuo.com/article/p-djuuevzq-nx.html
抽象工廠(Abstract):http://www.javashuo.com/article/p-mitsxbpm-nx.html
單例模式(Single):http://www.javashuo.com/article/p-eaokhrqk-nx.html
原型模式(Prototype):http://www.javashuo.com/article/p-elvbykae-nx.html
建造者模式(Builder):http://www.javashuo.com/article/p-feufgvev-nx.html
4.2結構型
適配器(Adaptor):http://www.javashuo.com/article/p-ckfhcruf-nx.html
橋接模式(Bridge):http://www.javashuo.com/article/p-uznawaim-nx.html
裝飾者(Decorator):http://www.javashuo.com/article/p-wngtndji-nx.html
外觀模式(Facade):http://www.javashuo.com/article/p-zfmavemx-nx.html
組合模式(Composite):http://www.javashuo.com/article/p-sscnhzbu-nx.html
享元模式(FlyWeight):http://www.javashuo.com/article/p-hawtfuaf-nx.html
4.3行爲型
代理模式(Proxy):http://www.javashuo.com/article/p-omiiqvcl-nx.html