您的位置:首页 > 其它

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

2008-03-21 18:12 169 查看
信仰只能有一个。
单例模式正如它字面的意思:只能创建一个实例。乍一看,想一想怎么可能,只要是一个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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: