我相信這可能已經回答,但我實際上找不到合併的答案。這個單身人士的問題(不是課程)
以下單例的問題,只是一個函數,並保證有初始化,並假設T支持operator!,需要的構造函數,函數等? (我沒有尋找線程安全)。更重要的是,在我的情況下,其他人創建T對象的行爲是我想要用於我的程序生命週期的數據庫句柄。
template<typename T>
T* getInstance(){
static T instance;
if (!instance && !instance.initialize()){
return NULL;
}
else {
return &instance;
}
}
它不是線程安全的......這是錯的。 –
這樣做的主要問題是您嘗試使用Singleton。辛格爾頓是一種反模式。 [不要使用它]。(http://jalf.dk/blog/2010/03/singletons-solving-problems-you-didnt-know-you-never-had-since-1995/) – sbi