定義
在它的核心結(jié)構(gòu)中只包含一個(gè)被稱為單例的特殊類碴卧。單例模式可以保證系統(tǒng)中,確保某一個(gè)類只有一個(gè)實(shí)例牡属,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例煞赢。
代碼實(shí)現(xiàn)
//餓漢式 在類加載時(shí)就完成了初始化,類加載比較慢稳其,獲取對(duì)象的速度快驶赏。
//是線程安全的
public class Singleton {
private static Singleton Singleton = new Singleton();
private Singleton(){
}
public static Singleton getSinglePattern(){
return Singleton;
}
public void dosomething(){
}
}
//懶漢式
public class Singleton {
private static Singleton Singleton = null;
private Singleton(){
}
public static Singleton getSinglePattern(){
if(Singleton == null){
Singleton = new Singleton();
}
return Singleton;
}
public void dosomething(){
}
}
應(yīng)用場(chǎng)景
- 唯一生成序列的環(huán)境
- 創(chuàng)建一個(gè)對(duì)象需要消耗的資源過(guò)多,如需要I/O訪問數(shù)據(jù)庫(kù)
- 大量的靜態(tài)常量和靜態(tài)方法