分享
 
 
 

设计模式入门(1)------单件(Singleton)

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

设计模式入门(1)------------单件(Singleton)

作者的话:

大家都说, C++难 , 难在那里 , 难在他的面向对象OO部分. 而OO的设计, 又是OO的难点

. 设计模式描述了面向对象领域中经常出现的一类固定问题 ,和他比较固定的解决方法. 这样

,你就可以一次次的重用这种解决方法而不必作重复的劳动. 但是经典书籍<<Design Pattern

>>比较晦涩, 想想我自己, 也是花费了许多时间去揣摩书中的含义. 现在精通设计模式的高手

很多, 不过他们大都很忙. 我想, 我可以花去一些休息时间去为我们的众多C++ fans去做一些

有意义的事情. 我的水平不高, 文中必有一些错误, 欢迎高手们的指正.

我是个C++谜, 我经常去www.cuj.com ,在我的文章中, 你也会发现Jim Hyslop and Herb Su

tter 的影子.

我希望把模式以浅显易懂的方式介绍给大家. 如果你觉得这篇文章颇对你的胃口, 或是对你

有一点帮助, hahaha, Its my pleasure. 也对我来一些鼓励吧! 大家的鼓励可是我写作的动

力呦! (^-^)

---------------------------------------------------------------------------

" 喂喂喂, Grant 你在干吗? ", 这个家伙整个上午都把他那只派克笔转过来转过去, 搞得我

心烦不已 . "你可不可以安静点儿 ! ", 我说 .

" 我有个问题无法解决. " Grant 说, " 我设计了一个钟表类, 他需要一个唯一个时钟来对

程序中的其他的一些其他的定时器进行协调. 我不想生成第二个时钟! ", "那么你怎么做的

呢? " 我饶有兴趣的问. "我想使用全局变量, 可是我没有办法让我那该死的时钟类只生成唯

一的实例." 而且, 他接着说 "这个程序太大了, 并不是我一个人完成的. 如果只是我一个人

, 我可以记住只把时钟类实例化一次, 可是, 我还有许多partner , 这并不是一个好方法 ,我

想从设计上保证它! "

想想昨晚刚刚我刚看完设计模式上一个有关保证一个类仅有唯一实例的方法单件(Singleton

), 我不由得喜上心头, 哈哈哈, 可以卖弄一下了! ".

" 你可以把构造函数定义成非公有的, 就可以保证不会生成实例了. " 我笑着说.

" My god , 不会吧 , 非公有的构造函数 , 我可从来没有想过………… 那么我如何生成我

的唯一的时钟呢? 如果是非公有的构造函数中, 那么我好象也没有办法对时钟类实例化………

"

"你可以定义一个对类操作的static型函数, 在这个函数中实例化不就行了么! "

"我还是不太明白! ", Grant 眨了眨眼睛.

我提笔写下以下的例子:

class Singleton

{

public :

static Singleton* Instance ( );

protected :

singleton ( ) ;

private :

static Singleton* _instance ;

};

Singleton* Singleton::_instance = 0;

Singleton* Singleton::Instance ( )

{

if(_instance == 0)

{

_instance = new Singleton;

}

return _instance;

}

" 这里, Instance函数是static 型函数, 他可以对类进行操作, 而 _instance 是static型

变量, 它只与类相关. Instance 使用惰性初始化, 它直到第一次被调用时才创建唯一的Sing

letion实例. 而构造函数你可以定义为 private型, 这里定义为 protect 型, 可以使你在子

类的函数中重用它, 这样, 如果有人想用Singleton去实例化对象, 就会得到一个编译错误,

他只能通过Instance函数去方问唯一的对象, 明白了吗? "

" 你真是个天才, 这个想法太棒了, 如果我是MM的话, 我一定会嫁给你的! "

" 嫁给我 , 还是算了吧 ! 快去写你的程序. "

看着Grant 的背影, 我吐了吐舌头 , 哈, 天才, 究竟是不是天才, 只有我自己知道!

--------------------------------------------------------------------------------

--------------------------------------

大家看看题目, 设计模式入门, 记住, 这只是入门! 这里介绍的十分浅显. 如果你想要有提

高的话, 还是看<<Design Pattern>>. (哈哈哈, 如果你仔细看的话, 你会发现作者抄袭了好

多! )

作者: hyqryq

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有