黑馬程式設計師——程式設計模式
一、單例設計模式
設計模式的概念:解決某一問題最行之有效的方法。java中共有23種設計模式。
接下來我們講解其中的一種:單例設計模式。
單例設計模式的作用:使一個類在記憶體中只存在一個物件。
用程式碼實現單例設計模式需要做三部:
1、將建構函式初始化。
例:private Single(){}
2、在類中建立一個本類物件。
例:private static Single s= newSingle();
3、提供一個訪問方法可以獲取到該物件。
例:public static Single getInstance()
{
returns;
}
例設計模式只是為了保證記憶體中的物件唯一。
1、為了避免其他程式過多建立該類物件,先禁止其他程式建立該類物件。
2、還為了讓其他程式訪問該類物件,只好在本類中,自定義一個物件。
3、為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式。
這三步如何用程式碼體現呢?
1、private建構函式
2、在內中建立一個本類物件。
3、提供一個方法可以獲取到該類物件。
對於事物該怎麼描述,還怎麼描述。
當需要將該事物的物件保證在記憶體中唯一時,就將以上的三步加上即可。
class Single{
private Single(){}
private static single s = new Single();
public static Single getInstance()
{
return s;
}
}
class SingleDemo
{
public static void main(String[] args)
{
Single ss=Single.getInstance();
}
}
單例設計模式有兩種寫法:
1、餓漢式:也就是剛三部中的示例語句。它的特點是先初始化物件。如:Single類一進記憶體,就已經建立好了物件。在實際開發中,出於安全考慮,建議使用餓漢式。如上
2、懶漢式:它的特點物件是方法被呼叫時,才初始化,這也叫物件的延時載入。如:在以下完整程式碼中,Single類進記憶體,物件還沒有存在,只有呼叫了getInstance()方法時,才建立物件。
完整程式碼如下: