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;
    }
  • 相关阅读:
    Java Web学习笔记---用GET实现搜索引擎
    Docker之docker log详解
    Docker之save、load、export、import命令
    Docker之镜像地址
    GIT使用详解
    Docker之commit制作镜像
    Python之sys.arg[]的用法解释
    python常用内置函数
    VBA精彩代码分享-1
    C#读写EXCEL单元格的问题
  • 原文地址:https://www.cnblogs.com/venow/p/2740059.html
Copyright © 2011-2022 走看看