小话设计模式二:单例模式

单例模式定义:

  只有一个实例,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

单例模式特点:

  1、这个类只能有一个实例

  2、这个类必须自行创建这个实例

  3、这个类必须自行向整个系统提供这个实例

单例模式解析:

 

  下面是单例模式的UML图:

                                                         

  下面是简单代码实现:

//单例模式
class Singleton
{
public:
    static Singleton* CreateInstance();
    static void DestoryInstance();
    ~Singleton();
private:
    Singleton();
    Singleton(const Singleton &rhs);
    static Singleton *instance;
};

Singleton *Singleton::instance = NULL;

Singleton::Singleton()
{
    cout<<"Create a Singleton class"<<endl;
}
Singleton::~Singleton()
{
    cout<<"Destory a Singleton class"<<endl;
}

Singleton* Singleton::CreateInstance()
{
    if (NULL == instance)
    {
        instance = new Singleton;
    }
    return instance;
}

void Singleton::DestoryInstance()
{
    if (NULL != instance)
    {
        delete instance;
        instance = NULL;
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    Singleton *one = Singleton::CreateInstance();
    Singleton *two = Singleton::CreateInstance();
    Singleton::DestoryInstance();
    return 0;
}
posted @ 2012-10-27 10:47  venow  阅读(405)  评论(0编辑  收藏  举报