换个角度学习设计模式-单例模式
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();
}
单例模式正如它字面的意思:只能创建一个实例。乍一看,想一想怎么可能,只要是一个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();
}
相关文章推荐
- 换个角度学习设计模式-抽象工厂
- 从装饰设计模式角度学习JavaIO字节流
- 从重构的角度学习bridge设计模式
- 从重构的角度学习bridge设计模式
- 【学习笔记javascript设计模式与开发实践(享元模式)----12】
- 设计模式学习笔记九:原型模式(Prototype Pattern)
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式学习之--代理模式
- java/android 设计模式学习笔记(3)---工厂方法模式
- java设计模式学习之代理模式
- 设计模式之六大设计原则学习笔记
- 设计模式学习之路-----OO基础
- 《设计模式:基于C#的工程化实现及扩展》学习笔记 02 准备篇 -- Namespace(命名空间)
- 【软考学习】设计模式——单例模式
- 设计模式学习(C++实现)1——工厂模式
- 设计模式学习笔记-桥接模式
- Java设计模式(学习笔记)--Strategy 模式
- 设计模式学习笔记——策略模式
- Java设计模式学习05——适配器模式
- 设计模式学习(简单工厂模式)