1. 程式人生 > 程式設計 >Java實現單例設計模式方法解析

Java實現單例設計模式方法解析

單例模式的幾種實現方式:

一:餓漢式單例

方式一:列舉方式獲得單例物件

方式二:靜態屬性獲得單例物件

方式三:靜態方法獲得單例物件

二:懶漢式單例

方式一:靜態方法獲得單例物件(執行緒安全)

方式二:內部類方式去獲取單例物件

示例:

惡漢式:方式一

enum Singleton{
  INSTANCE;//單例
}

惡漢式:方式二

class Singleton{
  public static final Singleton INSTANCE = new Singleton();//單例
  private Singleton(){}
}

惡漢式:方式三

class Singleton{
  private static final Singleton INSTANCE = new Singleton();//單例
  private Singleton(){}
  public static Singleton getInstance(){
    return INSTANCE;
  }
}

懶漢式:方式一

class Singleton{
	  private static Singleton instance;
	  private Singleton(){
	}
	  public static Singleton getInstance(){
		    //存線上程安全問題(多執行緒的時候,不一定是單例)
		    
		/*if(null == instance){
      instance = new Singleton();
    }
    return instance;*/
		    if(null == instance){
			//提升程式碼效率,避免每一次都去走同步程式碼塊
			      synchronized(Singleton.class){
				        if(null == instance){
					          instance = new Singleton();
				}
				        return instance;
				        
			}
			 
		}
		      return instance;
		   
	}
}
}

懶漢式:方式二

class Singleton{
  private Singleton(){}
  private static class Inner{
    public static final Singleton INSTANCE = new Singleton();
  }
  public static Singleton getInstance(){
    return Inner.INSTANCE;
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。