這個(gè)模式是很有意思那先,而且比較簡(jiǎn)單。項(xiàng)目中用的最多的恐怕就是這個(gè)模式了赡艰,人們對(duì)他的熟悉程度是比較高的售淡。
單例就是單一、獨(dú)苗的意思慷垮,那什么是獨(dú)一份呢揖闸?你的思維是獨(dú)一份,除此之外還有什么不能山寨的呢料身?
我們舉個(gè)比較難復(fù)制的對(duì)象:太陽(yáng)
public class Sun{
private static Sun= null;
//構(gòu)造器私有汤纸,從而使用戶(hù)不能通過(guò)new關(guān)鍵字創(chuàng)建多個(gè)對(duì)象。
private Sun(){
}
//不能new對(duì)象芹血,我們就必須提供給用戶(hù)一個(gè)可以操作的對(duì)象出來(lái)贮泞,不然沒(méi)有意義楞慈。
public static Sun getInstance(){
//第一個(gè)判空是判斷有沒(méi)有new出唯一對(duì)象的,如果有 就不必進(jìn)入鎖啃擦,提高性能囊蓝。
if(sun == null){?
? ? //加鎖,確保只有一個(gè)訪(fǎng)問(wèn)對(duì)象
????synchronized(Sun.class){
????//第二個(gè)判空令蛉,防止第一個(gè)對(duì)象new出來(lái)聚霜,第二個(gè)訪(fǎng)問(wèn)對(duì)象進(jìn)來(lái)的情況,加了這層判斷第二個(gè) ? ? ? ?訪(fǎng)問(wèn)對(duì)象進(jìn)來(lái)會(huì)發(fā)現(xiàn)已經(jīng)有對(duì)象了珠叔,不必再創(chuàng)造一個(gè)蝎宇。
? ????? if (sun == null){
????????????sun = new?Sun();
????????}
????}
}
return sun;
}
}