設計模式之單例模式學習

2021-10-03 10:55:28 字數 1084 閱讀 8157

單例模式是一種物件建立型模式,使用單例模式可以保證乙個類只生成唯一的例項物件。也就是說,在整個程式空間中,該類只存在乙個例項物件。

gof對單例模式的定義是:保證乙個類、只有乙個例項存在,同時提供能對該例項加以訪問的全域性訪問方法。

在應用系統開發中,我們常常有以下需求:

單例模式有二種實現方式,餓漢式和懶漢式
一、餓漢式

餓漢式就是在類載入的時候就對其進行初始化。不管你用的上還是用不上,一開始就給你建立物件。

public

class

person

public

void

setname

(string name)

private string name;

//建構函式私有化

private

person()

//提供乙個全域性的靜態方法

public

static person getperson()

}

二、懶漢式

懶漢式 就是當你需要的時候在進行建立物件。

public

class

person

public

void

setname

(string name)

private string name;

//建構函式私有化

private

person()

//提供乙個全域性的靜態方法

//餓漢模式在多執行緒情況下不能保證唯一例項

// 可以加synchroized 關鍵字,以及邏輯判斷來進行控制,但不保證絕對的唯一

public

static person getperson()

}}return person;

}}

餓漢式當類載入的時候就進行初始化。這樣就不管是單執行緒還是多執行緒都保證了乙份例項。

懶漢式在單執行緒情況下可以保證乙份例項,多執行緒情況下不保證唯一例項。只能用控制機制來加以控制,不能保證絕對的唯一。

1 設計模式學習之單例設計模式

一 什麼是單例設計模式?二 為什麼要使用單例設計模式?三 如何實現單例設計模式?缺點 2 懶漢式 public class mgr02 public static mgr02 getinstance return instance 缺點 3 synchronized修飾方法的寫法。解決懶漢式的執行緒...

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...