---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO開發S</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流! ----------------------
3.7 單例設計模式
1、設計模式:解決一類問題最行之有效的方法
2、單例設計模式:保證內存中只有一個對象
3、原因:以配置文件爲例,
4、如何保證對象的唯一性?
1)、不允許其他程序用new建立該類對象
2)、爲了讓其他程序可以訪問到該類對象,在本類中,定義一個對象
3)、爲了讓其他程序對自定義對象可以訪問,可以對外提供一些訪問方式
5、以上3部怎麼用代碼體現?
1)、將構造函數私有化
2)、在類中創建一個本類對象
3)、提供一個方法可以獲得該對象
6、模式:
①餓漢式:定義單例時,建議使用餓漢式
class Singleton{ private int num; public int getNum() { return num; } public void setNum(int num) { this.num = num; } private Singleton(){} private static Singleton s = new Singleton(); public static Singleton getInstance(){ return s; } }
②懶漢式:對象的延時加載,懶漢式在面試的時候考的最多
class Singleton{ private int num; public int getNum() { return num; } public void setNum(int num) { this.num = num; } private Singleton(){} private static Singleton s = null; public static Singleton getInstance(){ if(s==null){ synchronized(Singleton.class){ if(s==null) s = new Singleton(); } } return s; } }
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS開發</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流! ----------------------
詳細請查看:<ahref="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>