定義:
? ? ? ? ?在軟件開發(fā)中,經(jīng)過驗證的,用于解決在特定環(huán)境下,重復(fù)出現(xiàn)的特定的問題的解決方案。
常用的設(shè)計模式有23種,分為3類:
1.創(chuàng)建型設(shè)計模式5種
? ?單例、工廠方法、抽象工廠、建造者、原型;
2.結(jié)構(gòu)型設(shè)計模式7種
? ?適配器、橋接、裝飾、組合、外觀、享元、代理;
3.行為型設(shè)計模式11種
? ? ?模板方法、命令、迭代器、觀察者、中介者、備忘錄、解釋器、狀態(tài)、策略、責(zé)任鏈、訪問者;
每個設(shè)計模式的構(gòu)成如下:
? ? ? ?1、模式名稱:模式的一個好記的名字
? ? ? ?2、環(huán)境和問題:描述在什么環(huán)境下,出現(xiàn)什么特定的問題
? ? ? ?3、解決方案:描述如何解決問題
? ? ? ?4、效果:描述應(yīng)用模式后的效果,以及可能帶來的問題
單例模式:
適用的環(huán)境:只需要有一個對象,且該對象有類自己創(chuàng)建,提供全局的訪問。
解決問題:一個全局使用的類頻繁地創(chuàng)建與銷毀;
有很多種寫法,推薦適用內(nèi)部類的方式實現(xiàn):
java ? 靜態(tài)內(nèi)部類 ?實現(xiàn)單例模式
java ?懶漢模式 ?實現(xiàn)單例模式
Kotlin ?靜態(tài)內(nèi)部類 ?實現(xiàn)單例模式
xxx.java 內(nèi)使用kotlin單例模式