設計模式的 C 實現 單例模式 一

2021-10-24 08:12:07 字數 1357 閱讀 1447

在一些應用場景下需要控制某個類只能有乙個例項物件,本文記錄下實現方法。

實現說明

①.建構函式定義為 private,另外提供獲取物件例項的方法;

②.拷貝建構函式、拷貝賦值運算子定義為 delete,阻止拷貝賦值操作。

③.使用靜態區域性變數,只有使用時才會建立物件。

**示例

class

singleton

singleton

(const singleton &)=

delete

;//阻止拷貝

singleton &

operator=(

const singleton &)=

delete

;//阻止賦值

static singleton &

getsingleobj()

private

://建構函式為 private

singleton()

};

當有多個類需要控制例項數量時,可以採用模版及繼承的方式實現**復用。

模版基類

template

<

typename t>

class

singlepatterntemplate

singlepatterntemplate

(const singlepatterntemplate &)=

delete

; singlepatterntemplate &

operator=(

const singlepatterntemplate &)=

delete

;static t&

getsingleobj()

protected

:singlepatterntemplate()

;//建構函式定義為 protected

};

派生類示例

設計模式 C 實現單例模式

class singleton singleton singleton sing null singleton singleton getinstance 單例模式的實現要點 1 首先要將類的建構函式 複製建構函式和過載的賦值操作符設定為私有方法private,這樣禁止使用者呼叫建構函式來建立物件,...

設計模式 單例模式 C 實現

定義 指乙個類只有乙個例項,且該類能自行建立這個例項的一種模式。特點 1.單例類只有乙個例項物件 2.該單例物件必須由單例類自行建立 3.單例類對外提供乙個訪問該單例類的全域性訪問點。結構 單例類的建構函式往往是私有的。第一種 懶漢式單例 這種模式特點是類載入時沒有生成單例,只有當第一次呼叫geti...

C 設計模式 單例模式的實現

1.什麼是單例 保證乙個類只有乙個例項的實現方法。2.使用場景 頁面訪問計數器 需要保持狀態的工具類 需求很多,不能一一枚舉了 3.實現方 非執行緒安全 1 2 單例模式的實現 3 4 public sealed class singleton 5 13 14 定義公有方法提供乙個全域性訪問點,同時...