單例模式是設計模式中相對簡單的一個模式,主要用于保證程序中只存在一個類的實例,所以稱為單例。
這一點和枚舉類很相似,枚舉類是存在有限個數(shù)的類的實例,在極端情況下,即枚舉的有限個數(shù)為1,則就是單例模式。
下面介紹單例的兩種方式:
// 餓漢式public class Singleton { // 1.私有化構造函數(shù) PRivate Singleton(){ } // 2.內部創(chuàng)建實例,并私有化 private static Singleton instance = new Singleton(); // 3.設置get方法,允許外部創(chuàng)建實例,并設置成static,相應的成員變量也聲明為static public static Singleton getInstance(){ return instance; }}
有以下注意點:
//懶漢式public class Singleton1 { private Singleton1(){ } private static Singleton1 instance = null; public static Singleton1 getInstance(){ // 一般情況下不創(chuàng)建,只有在在調用并且instance為null的情況下才會創(chuàng)建 // 可能會存在線程安全的問題 if(instance == null){ instance = new Singleton1(); } return instance; }}與餓漢式區(qū)別就是實例創(chuàng)建的時機。
新聞熱點
疑難解答