1 單例模式

2021-08-14 19:50:31 字數 1582 閱讀 7347

ensure a class has only one instance, and provide a global point of access to it.(確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。)

——個人理解

意思就是執行過程中只建立乙個例項。

一提單例模式都知道兩個模式:餓漢式和懶漢式。我是怎麼理解的呢,餓漢式那就是餓唄,在類初始化時候就直接new出來,那懶漢式呢,那就是懶唄,你啥時候呼叫我我再給你new。

餓漢式

public

class singleton

//通過該方法獲得例項物件

public

static singleton getsingleton()

//類中其他方法,盡量是static

public

static

void

dosomething()

}

懶漢式—注意是執行緒不安全的,需要加synchronized

public

class singleton

//通過該方法獲得例項物件

public

static synchronized singleton getsingleton()

return singleton;

}}

在乙個系統中,要求乙個類有且僅有乙個物件,如果出現多個物件就會出現「不良反應」,可以採用單例模式,具體的場景如下:
擴充套件為生成固定數目的例項物件

//傳入皇帝名稱,建立乙個皇帝物件

private

emperor(string name)

//隨機獲得乙個皇帝物件

public

static emperor getinstance()

//皇帝發話了

public

static

void

say()

}

public

class minister }}

第1個大臣參拜的是:皇1帝

第2個大臣參拜的是:皇2帝

第3個大臣參拜的是:皇1帝

第4個大臣參拜的是:皇1帝

第5個大臣參拜的是:皇2帝

1 單例模式

乙個類只能有乙個例項。比如印表機這種東西。trick在於 變數,構造方法都必須為private,所以其他類new它的構造方法是不行的,直接呼叫變數也不行。只能呼叫getinstance 方法 其他被public修飾的方法。getinstance 方法記得用public修飾。原理 public cla...

1 單例模式

某個物件只需要乙個例項的情況,比方說gamemanager,resourcemanagerusing system namespace 單例模式 定義公有方法提供乙個全域性訪問點,同時你也可以定義公有屬性來提供全域性訪問點 public static singleton getinstance 構造...

單例模式1

1 餓漢式 author version 0.1 單例模式 餓漢式 建立時進行例項化 1 私有化構造方法 2 建立私有例項 static 3 建立公共類方法 static 方法輸出單例 public class singleton5 公共方法 public static singleton5 get...