zoukankan      html  css  js  c++  java
  • 单例模式

    《大话设计模式》中这样引出单例模式。很形象生动。

    有些类也需要计划生育

    “大鸟,今天我在公司写一个MDI窗体程序,当中有一个是“工具栏”的窗体,问题是,我希望工具箱要么不出现,出现也只出现一个,可实际上却是我每次点击菜单,实例化‘工具箱’,它就会出来一个,这样点击多次就会出来多个,你说怎么办??”

    单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

    先附上代码:

    #include <iostream>
    using namespace std;
    
    class Singleton
    {
    private:
        Singleton() {}
        //把复制构造函数和=操作符也设置为私有,防止被复制
        Singleton(const Singleton&) {}
        Singleton& operator=(const Singleton&) {}
    
        static Singleton* obj;
    
    public:
        static Singleton* GetObj()
        {
            if(obj == NULL)
                obj = new Singleton();
            else
                return obj;
        }
    };
    
    //在此处初始化
    Singleton* Singleton:: obj = NULL;
    
    int main()
    {
        Singleton* singleton1 = Singleton::GetObj();
        Singleton* singleton2 = Singleton::GetObj();
    
        if(singleton1 == singleton2)
            printf("singleton1 == singleton2
    ");
        return 0;
    }
  • 相关阅读:
    Redis数据类型
    Linux配置Redis
    Linux配置ActiveMQ
    Linux配置Docker
    3、Spring Boot日志
    2、Spring Boot配置
    1. Spring Boot入门
    Linux(centos6.8)配置Redis
    okhttp禁止重定向
    123
  • 原文地址:https://www.cnblogs.com/renzhuang/p/6706487.html
Copyright © 2011-2022 走看看