c++设计模式(一) 单件(Singleton)

c++设计模式(一) 单件(Singleton)

设计模式或许是面向对象设计方法学前进过程中的最新,最重要的一步。设计模式当今已成为面向对象程序设计的重要部分。

单件也许是最简单的设计模式,它是允许一个类有且仅有一个实例的方法。创建一个单件模式的关键是防止客户程序员获得任何控制其对象生存期的权利。为了做到这一点,声明所有的构造函数为私有,并且防止编译器隐式生成任何构造函数。注意,拷贝构造函数和赋值操作符(这两个故意没有实现,,因为它们根本不会被调用)被声明为私有,以便防止任何这类复制动作产生。这种方法并没有限制只创建一个对象。这种技术也支持创建有限个对象的对象池。

下面的程序显示在c++中如何实现一个单件模式
#include<iostream>

using namespace std;


class Singleton
{
    static Singleton s;
    int i;
    Singleton(int x):i(x){}
    Singleton & operator=(Singleton &); //disallowed
    Singleton(const Singleton &);

public:
    static Singleton & instance(){return s;}
    int getValue(){return i;}
    void setValue(int x){i=x;}
};


Singleton Singleton::s(47);


int main()
{
    Singleton &s =Singleton::instance();
    cout<<s.getValue()<<endl;
    Singleton &s2=Singleton::instance();
    s2.setValue(9);
    cout<<s.getValue()<<endl;
}


参考:c++ 编程思想 2

你可能感兴趣的:(c++设计模式(一) 单件(Singleton))