Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類Class只有一個(gè)實(shí)例存在。 一般Singleton模式通常有幾種形式:
第一種模式:定義一個(gè)類,它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類變量,在類初始化時(shí)實(shí)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。只要初始化就創(chuàng)建了一個(gè)靜態(tài)的實(shí)例(飽漢)
public class Singleton{
//注意這是private 只供內(nèi)部調(diào)用
private Singleton(){}
//在自己內(nèi)部定義自己一個(gè)實(shí)例
private static final Singleton singleton=new Singleton();
//公有方法訪問(wèn)得到實(shí)例 Singleton singleton=Singleton.getInstance();即可的得到實(shí)例
public static Singleton getInstance(){
return singleton;
}
}
第二種模式:
public class Singleton{
private static Singleton singleton = null;
//使用時(shí)才生成實(shí)例
public static synchronized Singleton getInstance() {
if (null == singleton) {
singleton = new Singleton();
}
return singleton;
}
}
第三種模式:枚舉
public enum Singleton{
ONE;
}