换个角度学习设计模式-单例模式

     信仰只能有一个。

单例模式正如它字面的意思:只能创建一个实例。乍一看,想一想怎么可能,只要是一个class 便能创建无数个实例。下面看看神是如何把自己变成唯一的吧。

神可以创造万物,而万物创造不了神,方法就是把“神”的构造方法隐藏起来

Class God

{     

private:

       God();

    ~God();

}

那是谁创造了神呢?现在只能是他自己了

Class God

{     

private

static God* _godinstance;

protected:

       God();

    ~God();

public

       static God* GodInstance();

}

God * God:: _godinstance = 0;

God * God:: GodInstance ()

{

       _godinstance = new God();

       return _godinstance;

}

隐藏了构造函数,保证了神无法被别人随意创造

Class God

{     

private

static God* _godinstance = 0;//使用 static 使变量_godinstance的初始

//化只能在第一次类实例化时执行

private

       God();

    ~God();

public

       static God* GodInstance();

}

God * God:: _godinstance = 0;

God * God:: GodInstance ()

{

       if(godinstance == 0 )

{

              _godinstance = new God();

}

       return _godinstance;

}

教徒只能对外声明神的存在

int * main( int argc, char* argv[] )

{

         God * sgn = God::GodInstance();

}

 
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页