單例類模板

2021-10-02 19:35:34 字數 1205 閱讀 6943

需求的提出:在架構設計時,某些類在整個系統生命期中最多只能有乙個物件存在(single instance)。

問題:如何定義乙個類,使得這個類最多只能建立乙個物件?

要控制類的物件數目,必須對外隱藏建構函式。思路如下:

程式設計實驗:單例模式初探

#include

#include

using

namespace std;

class

sobject

public

:static sobject*

getinstance()

;void

print()

};sobject* sobject::c_instance =

null

;sobject* sobject::

getinstance()

return c_instance;

}int

main()

如上實現存在的問題:

解決方案:

實現和使用方法如下:

singleton.h:

#ifndef _singleton_h_

#define _singleton_h_

template

<

typename t >

class

singleton

;template

<

typename t >

t* singleton

::c_instance =

null

;template

<

typename t >

t* singleton

::getinstance()

return c_instance;

}#endif

main.cpp:

#include

#include

#include

"singleton.h"

using

namespace std;

class

sobject

public

:void

print()

};intmain()

單例類模板

單例模式 需求的提出 在架構設計時,某些類在整個系統生命週期中最多只能有乙個物件存在 single instance 如何定義乙個類,使得這個類最多只能建立乙個物件?明確建立乙個物件,必然會呼叫建構函式。要控制類的物件數目,必須對外隱藏建構函式 思路 將建構函式的訪問屬性設定為private 定義i...

單例類模板

單例模式 類在系統生命週期中只有乙個物件存在 思路 將建構函式設為私有。建立乙個標記,用於指示物件的個數,多於乙個返回已經建立了的物件,少於乙個則建立乙個。單例類模板的實現 include include using namespace std class sobject public static...

C 單例模板類

單例模式 singleton 是設計模式常見的一種,其目的是保證 系統中只存在某 類的唯一例項 物件 在 應用程式中,經常用於配置,日誌等的處理。使用單例模板類可以很容易地實現單例模式。如下 templateclass csingleton return m pinstance protected ...