內部類實現單例模式
阿新 • • 發佈:2018-12-23
以前java的學習中對於單例模式是再熟悉不過了,對於單例模式的實現方法也是再熟悉不過了。通常設計模式中交給我們懶漢式還有餓漢式兩種實現方法,程式碼如下:
public class Singleton { private Singleton(){} private static Singleton singleton = null ; public static Singleton getInstance(){ if(singleton==null){ return new Singleton(); } return singleton; } }
public class Singleton {
private Singleton(){}
private static Singleton singleton = new Singleton() ;
public static Singleton getInstance(){
return singleton;
}
}
今天在看公司程式碼的時候又發現一種比較靈巧的實現方式,實現方式是通過內部類實現的,程式碼如下:
public class Singleton { private Singleton(){} private static class Inner{ static Singleton singleton = new Singleton(); } public static Singleton getInstance(){ return Inner.singleton; } }
public class Test{
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();//這樣同樣可以獲取到singleton的單例
}
}