一、餓漢式
設計模式:解決某一類問題最行之有效的方法。
java中23種設計模式:
單例設計模式:解決一個類在內存只存在一個對象。
想要保證對象唯一。
1,爲了避免其他程序過多建立該類對象。先禁止其他程序建立該類對象.
2,還爲了讓其他程序可以訪問到該類對象,只好在本類中,自定義一個對象。
3,爲了方便其他程序對自定義對象的訪問,可以對外提供一些訪問方式。
這三步怎麼用代碼體現呢?
1,將構造函數私有化。
2,在類中創建一個本類對象。
3,提供一個方法可以獲取到該對象。
對於事物該怎麼描述,還怎麼描述。
當需要將該事物的對象保證在內存中唯一時,就將以上的三步加上即可。
這個是先初始化對象。稱爲:餓漢式。
Single類一進內存,就已經創建好了對象。
class Single
{
private Single(){}
private static Single s = new Single();
public static Single getInstance()
{
return s;
}
}
二、懶漢式
對象是方法被調用時,才初始化,也叫做對象的延時加載。成爲:懶漢式。
//Single類進內存,對象還沒有存在,只有調用了getInstance方法時,才建立對象。
class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s = new Single();
}
}
return s;
}
}
//記錄原則:定義單例,建議使用餓漢式。
class
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}