zoukankan      html  css  js  c++  java
  • 小话设计模式二:单例模式

    单例模式定义:

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

    单例模式特点:

      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;
    }
  • 相关阅读:
    逻辑回归
    异常
    内部类
    接口
    多态
    final关键字(最终的)
    不能被继承的父类成员
    对象初始化的过程
    方法重写
    abstract关键字
  • 原文地址:https://www.cnblogs.com/venow/p/2740059.html
Copyright © 2011-2022 走看看