確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。這種模式涉及到一個(gè)單一的類,該類負(fù)責(zé)創(chuàng)建自己的對(duì)象,同時(shí)確保只有單個(gè)對(duì)象被創(chuàng)建。這個(gè)類提供了一種訪問其唯一的對(duì)象的方式,可以直接訪問,不需要實(shí)例化該類的對(duì)象。
峨眉山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!網(wǎng)上其實(shí)有很多實(shí)現(xiàn)比如:餓漢模式、懶漢模式等等這里總結(jié)一下:
一般情況下,不建議使用第 1 種懶漢方式,建議使用第 2 種餓漢方式。
只有在要明確實(shí)現(xiàn) lazy loading 效果時(shí),才會(huì)使用第 4 種登記方式。如果涉及到反序列化創(chuàng)建對(duì)象時(shí),可以嘗試使用第 5 種枚舉方式。如果有其他特殊的需求,可以考慮使用第 3 種雙檢鎖方式。
代碼實(shí)現(xiàn)餓漢式:
public class Singleton {private static final Singleton singleton = new Singleton();
//限制產(chǎn)生多個(gè)對(duì)象
private Singleton(){}
//通過(guò)該方法獲得實(shí)例對(duì)象
public static Singleton getSingleton(){return singleton;
}
//類中其他方法,盡量是 static
public static void doSomething(){}
}
2. 使用場(chǎng)景● 要求生成唯一序列號(hào)的環(huán)境;
● 在整個(gè)項(xiàng)目中需要一個(gè)共享訪問點(diǎn)或共享數(shù)據(jù),例如一個(gè) Web 頁(yè)面上的計(jì)數(shù)器,可以不用把每次刷新都記錄到數(shù)據(jù)庫(kù)中,使用單例模式保持計(jì)數(shù)器的值,并確保是線程安全的;
● 創(chuàng)建一個(gè)對(duì)象需要消耗的資源過(guò)多,如要訪問 IO 和數(shù)據(jù)庫(kù)等資源;
● 需要定義大量的靜態(tài)常量和靜態(tài)方法(如工具類)的環(huán)境,可以采用單例模式(當(dāng)然,也可以直接聲明為 static 的方式)。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧