單例設計模式

單例設計模式


單例設計模式指:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。


1.構造方法私有化

2.聲明一個本類對象

3.給外部提供一個靜態方法獲取對象實例


兩種實現方式:

1.餓漢式

2.懶漢式


/**
 * 
 * 單例設計模式
 *
 */
public class SingletonDemo {
	public static void main(String[] args){
		Singleton1 s=Singleton1.getInstance();
		s.show();
		Singleton1 s1=Singleton1.getInstance();
		System.out.println(s==s1);
		
		Singleton2 s2=Singleton2.getInstance();
		s2.show();
		Singleton2 s3=Singleton2.getInstance();
		System.out.println(s2==s3);
	}

}
//餓漢式
public class Singleton1 {
	//定義一個本類對象並實例化
	private static Singleton1 s=new Singleton1();
	//構造方法私有化
	private Singleton1(){};
	
	public static Singleton1 getInstance(){
		return s;
	}
	public void show(){
		System.out.println("餓漢式單例模式");
	}
}
//懶漢式(多線程訪問時會有安全問題)
public class Singleton2 {
        //定義一個本類對象
	private static Singleton2 s=null;
	//構造方法私有化
	private Singleton2(){};
	
	public static Singleton2 getInstance(){
		if(s==null){
			s=new Singleton2();
		}
		return s;
	}
	public void show(){
		System.out.println("懶漢式單例模式");
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章