zoukankan      html  css  js  c++  java
  • Singleton模式

    保证一个类只能有一个实例,并提供一个访问它的负局访问点。

    Singleton模式的工作方式是:拥有一个特定的方法,这个方法被手于实例化需要的对象。

     * 当这个方法被调用时,它检查了这个对象是否已经被 实例化。如果对象已经被实例化,这个方法仅仅返回这个对象的一个引用。如果对象尚未实例化,这个方法交对象实例化返回这个新的实例的引用。

    *为了确保这是创建这个类型的对象的惟一途径,一般都是当构造函数定义为protected 或 private.

    网上的代码:

    #include<iostream>
    
    using namespace std;
    
    class Singleton
    {
    public:
        static Singleton * GetInstance()//通过静态公有函数获得该类的实例对象
        {
            if(m_pInstance==NULL)
            m_pInstance=new Singleton();
            return m_pInstance;
        }
    private:
        Singleton(){}//构造函数私有化的目的是为了防止从别处实例化该类对象
        static Singleton * m_pInstance;
        class Garbo//删除Singleton实例的对象
        {
        public:
            ~Garbo()
            {
                if(Singleton::m_pInstance)
                {
                    delete Singleton::m_pInstance;
                }
            }
        };
        static Garbo gb;//在程序结束时,系统会调用它的析构函数
    };
    
    Singleton * Singleton::m_pInstance=NULL;//初始化静态数据成员
    
    
    int main()
    {
        Singleton *sl=Singleton::GetInstance();
        return 0;
    }
  • 相关阅读:
    Ubuntu 系统装机指南
    java读取配置文件属性
    反转单链表 递归与非递归
    迟到的2013年终总结
    2014年阅读资料总结
    程序人生的四个象限和两条主线
    查找单链表中倒数第k个结点
    技术人员应真正学会的第二课程
    Linux“七大蠢”收录
    postman测试方法,出现400错误码
  • 原文地址:https://www.cnblogs.com/fangshenghui/p/2524962.html
Copyright © 2011-2022 走看看