JAVA基礎 單例設計模式(餓漢式與懶漢式)

2021-06-20 04:23:16 字數 1051 閱讀 7424

單例設計模式:

解決乙個類在記憶體只存在乙個物件。

想要保證物件唯一

1,為了避免其他程式過多建立該類物件。先禁止其他程式建立該類物件

2,還為了讓其他程式可以訪問到該類物件,只好在本類中,自定義乙個物件。

3,為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式。

這三部怎麼用**體現呢?

1,將建構函式私有化。

2,在類中建立乙個本類物件。

3,提供乙個方法可以獲取到該物件。

對於事物該怎麼描述,還怎麼描述。

當需要將該事物的物件保證在記憶體中唯一時,就將以上的三步加上即可。

//單例設計模式

class student

;

private static student s=new student();

public static student getinstence()

/*下面與平時沒有區別*/

private int age;

public void setage(int age)

public int getage() }

class studentdemo

}//輸出:age=20

上面是一種被稱為」餓漢式「的單例設計模式----------------類一被載入就建立物件(堆中就有物件)。

下面還有一種被稱為「懶漢式」的單例設計模型-------------類載入時,方法區有一變數s=null(此時堆中無物件),只有當方法被呼叫時才建立堆中物件,故也叫物件的延時載入。

/*懶漢式單例設計模式*/

private student(){};

private static student s= null;

public static student getinstence()

雖然懶漢式看起很美,但是推薦使用餓漢式,因為懶漢式在多執行緒容易出現問題,而單純的加鎖會使效率很低,除非使用雙重判斷。具體在多執行緒中在**。

Java設計模式 單例模式(餓漢式 懶漢式)

單例模式 所謂單例模式,從字面意思上來講就是只有乙個例項物件。特點 單例類只能有乙個例項。單例類必須自己建立自己的唯一例項。單例類必須給所有其他物件提供這一例項。單例模式必須確保只有乙個例項化物件,而且自行提供例項化並提供公共的獲取例項化物件的方法。餓漢式 餓漢式單例模式 class eager 提...

java單例設計模式 餓漢式與懶漢式

推薦使用餓漢式,二者區別在於 從實現方式來講他們最大的區別就是懶漢式是延時載入,他是在需要的時候才建立物件,而餓漢式在虛擬機器啟動的時候就會建立。public class singletondemo class singleton1 public static singleton1 getinsta...

Java中的設計模式 單例模式(餓漢式)

一套優秀 的設計經驗總結。它是特定場景下特定問題的處理方法。重用設計模式和 提高擴充套件性 大量使用面向介面程式設計,預留擴充套件位 專案擴充套件的原則 對修改關閉,對新增開啟,也叫開閉原則 提高靈活性,降低耦合度。提高開發效率,節省大量的時間。乙個類只能由乙個例項物件,乙個類只能有乙個物件,但是要...