使用巨集來實現單例模式

2021-07-09 16:28:11 字數 767 閱讀 3350

單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。

如果有很多地方需要使用到單例模式,則可以改用巨集來簡化實現單例模式的編碼工作。需要注意的是:該方案為非執行緒安全!

在使用單例的標頭檔案中先宣告:declare_singleton(classa)

然後在cpp檔案中新增巨集:implement_singleton(classa)

外部呼叫方法:classa::instance()

#ifndef singleton_h

#define singleton_h

#define declare_singleton(class_name) \

protected: \

class_name();\

static class_name* m_pinstance; \

public: \

static class_name* instance();

#define implement_singleton(class_name) \

class_name* class_name::m_pinstance = null;\

class_name* class_name::instance() \

#endif

多執行緒的單例模式建議參閱:

69 單例使用巨集實現

1 判斷是否是arc環境 可以用巨集判斷是否為arc環境 if has feature objc arc arc else mrc endif 2 定義巨集的時候字串連線 連線字串和引數 define singleton h name instancetype shared name 1 在arc和...

利用static來實現單例模式

class singleton private static singleton instance null publicsynchronizedstatic singleton getinstance return instance 就利用sington.getinstace就可以了,獲得的是同乙...

巨集定義C 單例模式

通用的標頭檔案 巨集定義乙個類實現單例需要做的一些工作。每個單例類最好將其建構函式和虛析構函式設定為private pragma once define singleton declare theclass 標頭檔案類中呼叫 public static theclass snglptr static...