單例設計模式
單例設計模式指:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。
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("懶漢式單例模式"); } }