当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

Singleton的C++实现 及相关问题

    编程序的时候很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。

    最简单的方法是用个全局变量或者用个静态变量。但这违反基本的object oriented design 的原则,使程序执行的整体结构,可读性以及可维护大大下降。同时如果所编写的程序不是主程序而是dll的话全局变量的寿命更难控制。


    design pattern 中最简单也是应用最广的就是singleton, 就是用于解决这个问题的。下面是一个简单的singleton的c++的实现,应用这个class之后可以保证当前程序中只有一个copy 。

 class singleton

{

public:

static singleton * getinstance()

{
     static singleton instance;

     return &instance;

}

protected:

            singleton();

            singleton();

}


    由于constructor和destructor都是protected,所以无法直接生成这个class。使用时直接用 singleton::getinsgtance()就行了。不必操心singleton的寿命。

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接