黑馬程序員——單例設計模式

---------------------- <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>

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