JAVA 單例模式

2021-09-14 05:01:16 字數 1094 閱讀 2978

目錄

解決目標:

實現思路:

具體**:

餓漢式:先初始化物件。

懶漢式:物件延時載入(物件是方法被呼叫時,才初始化)。

單例設計模式:解決乙個類在記憶體中只存在乙個物件。

應用:

就好像我們生存的世界只有乙個月亮,假設現在要設計乙個類表示月亮,該類只能有乙個例項物件,否則就違背了事實。

想要保證物件唯一。

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

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

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

兩種編碼方式:

/*1.餓漢式:先初始化物件*/

class single1	// 初始化single1類的建構函式,使其不能在類的外部使用new關鍵字建立物件

private static single1 s =new single1(); // 例項化single1唯一物件,並指定其為靜態私有成員變數

public static single1 getinstance()

}

/*2.餓漢式_簡寫版:先初始化物件*/

class single1_******

// 例項化single1_******唯一物件,並指定其為靜態公共成員變數,final的作用是禁止外部對該變數進行修改

public static final single1_****** s=new single1_******();

}

class single2	// 初始化single2類的建構函式,使其不能在類的外部使用new關鍵字建立物件

private static single2 s =null; // 例項化single2唯一物件,並指定其為靜態私有成員變數

public static single2 getinstance()

} return s;

}}

java單例模式

第一種方法 public class singleton private static singleton singleton new singleton public static singleton getinstance 第二種方法 public class singleton private...

Java 單例模式

單例模式特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。一 餓漢式單例 基於classloder機制避免了多執行緒的同步問題,使用較多 public class singleton 這裡提供了乙個供外部訪問本class的靜態方法,可...

Java單例模式

單例模式的意圖是為了確保乙個類有且僅有乙個例項,並為它提供乙個全域性訪問點。單例模式通過隱藏建構函式,提供物件建立的唯一入口點,從而將類的職責集中在類的單個例項中。design patterns一書中把單例模式歸類為 建立型 模式,意圖是在表明單例物件承擔了其他物件所要依賴的職責。單例模式的優點 在...