2
我在看一個開源庫VLMC,發現這個單例實現。它的做法是,爲了創建一個單一類庫,庫從一個單例繼承而來。像這樣從單例模板繼承
// SINGLETON_HPP
template <typename T>
class Singleton
{
//regular singleton implementation
protected:
Singleton(){}
virtual ~Singleton(){}
};
template <typename T>
T* Singleton<T>::m_instance = NULL;
// LIBRARY_H_
class Library : public Singleton<Library>
{
//some other stuff
private:
Library();
virtual ~Library(){}
friend class Singleton<Library>;
}
這是一個好的設計?這種設計提供了什麼優勢? 謝謝。
CV
在SO上搜索單身人士,你應該得到很多關於爲什麼和何時不使用單身人士的答案。 – RedX
感謝RedX,我會去搜索它 – blueskin