java單例模式案例,及單例體現的關鍵

2021-08-03 14:18:48 字數 940 閱讀 8175

特點:1,單例類只能有乙個例項

2,單例類必須自己建立自己的唯一例項

3,單例類必須給所有其他物件提供這一例項

以印表機為例,一台計算機可以連線多台印表機,但每次列印只能有一台印表機列印乙份檔案.單例模式就是如此,保證只有乙個出口,避免政出多頭.

案例:單例類:

package singleton;

public class singleton1

public static singleton1 newinstance()

return singleton1;

} public string getname()

public void setname(string name)

}

測試類:

package singleton;

public class test

}

說明:直接看測試類,第一步呼叫newinstance()方法,進入到singleton1類中,判斷靜態變數singleton1是否為null,為null則new 物件,回到測試類,給name賦值,列印為「name1」.

第二步,接著再次執行newinstance()方法,進入到singleton1類中,判斷靜態變數singleton1是否為null.這裡是為什麼命名為單例模式的關鍵。因為第一步已經new了一次,靜態變數singleton1已經不為null,因此不會再去new物件,而是直接返回到測試類,把物件singleton1賦給singleton12,所以無論後面有執行多少次newinstance()方法,所有的物件都是第一次的singleton1.

第三步,看列印的結果,分別是「name1」"name2","name2","true".

仍有疑問的朋友,可以複製**,debug執行,根據說明講解細細體會。

java基礎案例 單例設計模式

單例設計模式 必須對於多個程式使用同乙個配置資訊物件時,就需要保證該物件的唯一性 如何保證物件的唯一性 1 不允許其它程式用enw建立該類物件 2 在該類中建立乙個本類例項 3 對外提供乙個方法讓其它程式可以獲取該物件 步驟 1 私有化該類建構函式 2 通過new在本類中建立乙個本類物件 3 定義乙...

單例 單例模式

簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...

java單例模式

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