首先展示一个最简单的单例模式例子,代码如下: [cpp] view plaincopy class NetworkService { public: // 对外提供的唯一方法函数,用于获取唯一的对象指针 static NetworkService* GetInstance() { if(m_pInstance == NULL) { m_pInstance = new NetworkService(); } return m_pInstance; } private: // 构造函数设置为私有,禁止用户另外创建对象 NetworkService(); static NetworkService* m_pInstance; }; //www.heatperss123.com 这程序看起来非常简单,而且几乎没有什么问题,然后直接使用NetworkService::GetInstance()就可以获得对象指针了。不过这样的程序实际隐含了个问题:这个唯一的对象应该在什么时候被释放呢? 一种方法,我们可以先实现一个析构自身资源的方法,然后通过GetInstance()来获取对象自身,并调用这个方法来进行delete的操作。这样的方法可行,不过实现方式并不好,至少来说,我们应该让程序自己在合适的时候来释放资源,而不是由外面的程序来调用这个操作。[1] [2] 下一页 |