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;
    }
  • 相关阅读:
    JPA的一对多,多对多用法
    pg数据库中时间查询的方式
    DNS消息格式
    Netty之Java堆外内存扫盲贴
    Netty writeAndFlush() 流程与异步
    Netty之有效规避内存泄漏
    TCP状态变迁图
    TCP/IP详解--发送ACK和RST的场景
    TCP/IP详解--连接状态变迁图CLOSE_WAIT
    TCP中异常关闭链接的意义 异常关闭的情况
  • 原文地址:https://www.cnblogs.com/venow/p/2740059.html
Copyright © 2011-2022 走看看