1. 程式人生 > >內部類實現單例模式

內部類實現單例模式

    以前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的單例
	  }
    }