設計模式 單例模式之類模板實現

2021-08-16 09:30:55 字數 1191 閱讀 4646

/*

** 檔名稱:singletonobj.h

* 摘 要: 單例模式,使用類模板

* 用法示例 declare_singleton(cdestobject);

** 當前版本:1.0

* 作 者: fzuim

* 完成日期:2023年3月8日

*/#pragma once

templateclass csingletonobj

; ~csingletonobj(){};

static type* getinstance()

}catch(...)

return m_pinstance;

}static

void release()

}private:

static type* m_pinstance;

};/*

* 在類外定義成員函式,若此成員函式中有模板引數存在,則除了需要和一般類的類外定義成員函式一樣的定義外,

* 還需要在函式外進行模板宣告 template*/

templatetype* csingletonobj::m_pinstance = null;

/* * 這邊比較難理解的就是:為什麼要宣告友元類?

* 在於csingletonobj::getinstance()需要去new obj要訪問到建構函式,如果建構函式是private則訪問不了,

* 宣告為友元,可以完全訪問

*/#define declare_singleton(obj) \

friend class csingletonobj; \

public: \

static obj *getinstance() \

\static

void release() \

/* * 類使用栗子

*/class ctestobj

; ~ctestobj(){};

public:

void

dotest()

;};

呼叫栗子:

#include "stdafx.h"

#include "singletonobj.h"

int _tmain(int argc, _tchar* argv)

單例銷毀 C 單例模式的模板實現

單例模式是一種建立型的設計模式 creational design patterns 使用單例模式進行設計的類在程式中只擁有乙個例項 single instance 這個類稱為單例類,它會提供乙個全域性的訪問入口 global access point 關於單例模式的討論可以參考singleton ...

設計模式 實現單例模式

單例模式是最簡單的設計模式,沒有之一,相信大家也都聽說過。單例設計模式適合於乙個類只有乙個例項的情況,比如視窗管理器,列印緩衝池和檔案系統,它們都是原型的例子。典型的情況是,那些物件的型別被遍及乙個軟體系統的不同物件訪問,因此需要乙個全域性的訪問指標,這便是眾所周知的單例模式的應用。通過單例模式你可...

單例和模板設計模式

1.構造器私有化 防止構造物件 2.提供靜態方法,以便以外部方法訪問 3.宣告乙個靜態的當前類物件,以便於靜態方法呼叫 餓漢式單例模式 class single private static single single newsingle public static single getinstan...