懒汉单例设计模式
懶漢單例設計模式
1.私有化構造函數
2.聲明本類的引用類型變量,但是不要創建對象。
3.提供公共靜態的方法 獲取本類的 對象, 獲取之前先判斷是否已經創建了本類 對象,
?如果已經創建了,那么直接返回對象即可,如果還沒有創建,那么先創建本類的對象,
?然后在返回。
推薦使用: 餓漢單例設計模式。因為懶漢單例設計模式會存在線程安全問題,目前還不能保證一個類
1.私有化構造函數
2.聲明本類的引用類型變量,但是不要創建對象。
3.提供公共靜態的方法 獲取本類的 對象, 獲取之前先判斷是否已經創建了本類 對象,
?如果已經創建了,那么直接返回對象即可,如果還沒有創建,那么先創建本類的對象,
?然后在返回。
推薦使用: 餓漢單例設計模式。因為懶漢單例設計模式會存在線程安全問題,目前還不能保證一個類
在內存中只有一對象。
class SingleLazy {//2.聲明本類的引用類型變量,但是不要創建對象。private static SingleLazy sl ;private SingleLazy(){//1.私有化構造函數}/*3.提供公共靜態的方法 獲取本類的 對象, 獲取之前先判斷是否已經創建了本類 對象,如果已經創建了,那么直接返回對象即可,如果還沒有創建,那么先創建本類的對象,然后在返回。*/public static SingleLazy getInstance(){if (sl == null){sl = new SingleLazy();}return sl;} } public class SingletonPattern {public static void main(String[] args) {SingleLazy s1 = SingleLazy.getInstance();SingleLazy s2 = SingleLazy.getInstance();System.out.println("s1對象內存地址= "+s1+" s2對象內存地址= "+s2+'\n'+"s1 與 s2 是否相同?"+(s1 == s2));} }總結
- 上一篇: 饿汉单例设计模式
- 下一篇: 10.1引用数据类型的转换