##設計模式
###第一部分 六個創建型模式
####1.簡單工廠模式
定義一個工廠類,根據參數返回不同類的實例
####2.工廠模式定義
定義一個用于創建對象的接口,讓子類決定哪一個類實例化。
####3.抽象工廠模式定義
####4.單例模式
####5.原型模式
####6.建造者模式
###第二部分 七個結構型模式
####1.適配器模式
將一個接口轉換成客戶希望的另一個接口,使接口不兼容的哪些類可以一起工作。
####2.橋接模式
如果軟件系統中某個類存在兩個獨立變化的維度,通過該模式可以將這兩個維度分離出來,使兩者可以獨立擴展,讓系統更加符合“單一職責"。
####3.組合模式
組合多個對象形成樹形結構以表示具有”整體-部分“關系的層次結構。
####4.裝飾模式
####5.外觀模式
####6.享元模式
當系統中存在大量相同或者相似的對象時,可以通過共享技術實現相同或相似的細粒度對象的復用,從而節約了內存空間,提高了系統性能。
####7.代理模式
給某一個對象提供一個代理或占位符,并由代理對象來控制對原對象的訪問。
###第三部分 十一個行為型模式
####1.職責鏈模式
####2.命令模式
將一個請求封裝為一個對象,從而讓我們可用不同的請求對客戶進行參數化。對請求排隊或者記錄請求日志,以及支持可撤銷的操作。
####3.解釋器模式
####4.迭代器模式
迭代器模式:提供一種方法來訪問聚合對象,而不用暴露這個對象的內部表示。
####5.中介者模式
####6.備忘錄模式
####7.觀察者模式
####8.狀態模式
####9.策略模式
####10.模板方法模式
####11.訪問者模式