/**
* @author lais
* */
public class ehansingle
//私有化靜態物件,並直接建立,強調單例時可以用final修飾
private final static ehansingle single = new ehansingle();
//提供外界獲取方式
public static ehansingle getinstance()
//測試
public static void main(string args)
}
/**
* 列舉類餓漢式
* 列舉型別:表示該物件是有限的幾個,我們限定為乙個,就是單例了
* @author lais
* */
public enum ehanenum
}
/**
* 靜態**塊餓漢式:使用與複雜場景
* @author lais
* */
public class ehansingle2
//私有化靜態物件,並直接建立
private static final ehansingle2 single ;
static
//提供外界獲取方式
public static ehansingle2 getinstance()
//測試
public static void main(string args)
}
/**
* @author lais
* */
public class lanhansingle
private static lanhansingle single;
public static lanhansingle getinstance()
}
/**
* @author lais
* */
public class lanhansingle2
private static lanhansingle2 single;
public static lanhansingle2 getinstance()
} return single;
}}
/**
* 在內部類被載入和初始化時,才建立instance例項物件
* 靜態內部類不會自動隨著外部類的載入和初始化而初始化,它是單獨去載入和初始化的
* 因為是在內部類載入和初始化時,建立的,因此時執行緒安全的
* @author lais
* */
public class innersingle
private static class inner
public static innersingle getinstance()
}
使用餓漢式時,列舉方式最簡單
使用懶漢式時,靜態內部類方式最簡單
單例設計模式的幾種常見實現方法
總結 單例可以說是gof23中最簡單的一種設計模式,也經常用到。比如window的任務管理器,比如servlet物件等等。單例要完成的就是確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個唯一的例項。就像它的定義 ensure a class has only one instance,a...
設計模式 單例模式的幾種實現方式
1.概述 單例模式 簡單的說就是可以確保只產生乙個類例項,讓多個使用者或者多個執行緒同時使用這乙個例項,而不需要每次使用都建立一次物件。2.優缺點和適用場景 3.幾種不同形式的單例模式 class singleclass public static singleclass getinstance 這...
實現單例模式的幾種方法
public class singleclass public static singleclass getinstance 2 懶漢式 類在被載入時不會被初始化,當第一次被使用時進行初始化,為保證單例,可以使用sychronized關鍵字確保執行緒安全,但是每次呼叫時都會同步。public cla...