代碼如下:
package net.kitbox.util;
/**
*
* @author lldy
*
*/
public class Singleton {
private Singleton(){
}
private static class SingletonHolder{
private static Singleton instance = new Singleton();
}
public static void method(){
SingletonHolder.instance._method();
}
private void _method(){
System.out.println("Singleton Method!");
}
public static void main(String[] args) {
Singleton.method();
}
}
此種寫法利用了類加載器的加載原理,每個(gè)類只會(huì)被加載一次,這樣單例對(duì)象在其內(nèi)部靜態(tài)類被加載的時(shí)候生成,而且此過程是線程安全的。
其中method()方法封裝內(nèi)部單例對(duì)象的私有方法,作為對(duì)外接口使用,這樣就可以如下調(diào)用
復(fù)制代碼代碼如下:
Singleton.method();
//頻繁使用時(shí)比常見的 Singleton.getInstance().method()要省事
另外一種方式為采用枚舉來實(shí)現(xiàn)。
以上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。