C++中優雅的設計模式(GoF模式)實現是什麼?C++中的設計模式(GoF模式)實現
任何人都可以給我一些基於模板(可以重用)的設計模式實現的例子嗎?
例(基於模板的Singleton): -
template<typename T>
class Singleton : public boost::noncopyable
{
public:
static Singleton& GetInstance()
{
boost::call_once(&CreateInstance, m_onceFlg);
return *m_pInstance;
}
virtual ~Singleton()
{
}
protected:
Singleton()
{
}
static void CreateInstance()
{
m_pInstance.reset(new T());
}
private:
static boost::once_flag m_onceFlg;
static boost::scoped_ptr<T> m_pInstance;
};
我不一定會調用基於boost的C++單例實現,非常優雅... –
呃,閱讀GoF書嗎?本書中的大部分示例都是C++。 – PherricOxide
@Andreas Grapentin Qt的人不喜歡使用boost庫。這裏我舉了一個例子。 –