設(shè)計模式GOF
創(chuàng)建型模式
-單例模式、工廠模式、抽象工廠模式、建造者模式、原型模式
結(jié)構(gòu)型模式
-適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式
行為型模式
-模板方式模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式、狀態(tài)模式、策略模式、職責(zé)鏈模式、訪問者模式
單例模式
- 核心作用
-保證一個類只有一個實例,并且提供一個訪問該實例的全局訪問點 - 單例模式的優(yōu)點
-由于單例模式只生成一個實例,減少了系統(tǒng)性能開銷,當(dāng)一個對象的產(chǎn)生需要比較多的資源時,如讀取配置、產(chǎn)生其他依賴對象時,則可以通過在應(yīng)用啟動時直接產(chǎn)生一個單例對象,然后永久駐留內(nèi)存的方式來解決
-單例模式可以在系統(tǒng)設(shè)置全局的訪問點,優(yōu)化環(huán)共享資源訪問,例如可以設(shè)計一個單例類,負(fù)責(zé)所有數(shù)據(jù)表的映射處理 - 常見的五種單例模式實現(xiàn)方式
-主要:
1.餓漢式線程安全,調(diào)用效率高,但是不能延遲加載
2.懶漢式線程安全,調(diào)用效率不高。但是可以延時加載
-其他:
3.雙重檢測鎖式
4.靜態(tài)內(nèi)部類式
5.枚舉單例
工廠模式
-實現(xiàn)了創(chuàng)建者和調(diào)用者的分離
-詳細(xì)分類:
- 簡單工廠模式
- 工廠方法模式
- 抽象工廠模式
面向?qū)ο笤O(shè)計的基本原則:
-OCP(開閉原則):一個軟件的實體應(yīng)當(dāng)對擴展開放,對修改關(guān)閉.
-DIP(依賴倒轉(zhuǎn)原則):要針對接口編程,不要針對實現(xiàn)編程.
-Lod(迪米特法則):只與你直接的朋友通信,而避免和陌生人通信
- 核心本質(zhì)
-實例化對象,用工廠方法代替new操作
-將選擇實現(xiàn)類,創(chuàng)建對象統(tǒng)一管理和控制,從而將調(diào)用者跟我們的實現(xiàn)類解耦
- 工廠模式
-簡單工廠模式
- 用來生產(chǎn)同一等級結(jié)構(gòu)中的任意產(chǎn)品
-工廠方法模式 - 用來生產(chǎn)同一等級結(jié)構(gòu)中的固定產(chǎn)品
-抽象工廠模式 - 用來生產(chǎn)不同產(chǎn)品族的全部產(chǎn)品