理解并实现单体模式(一) 引子

单体模式:使一个程序里某个对象只能产生一个实例的模式。
它的定义如此简单,以至于看起来实现一个单体模式也是轻而易举的事。但如果读过GoF的《设计模式》和Andrei Alexandrescu的《Modern C++ Design》以后,大部分人可能都会改变原先过于单纯的想法。它太复杂了,以至于大部分程序员可能都无法给出一个较通用的实现。
实现一个单体模式挑战有(但不局限于)以下几个方面:
1.单体实例生成的时间
2.单体实例的生存期管理
3.单体实例的访问控制
4.单体实例的生成方式
以后的讨论会分析各个方面的挑战,糟糕的是,它们会互相纠缠在一起,并牵扯到其他相关的程序设计问题,很难只谈一个方面而不涉及其他,但尽量给出一个相对串行的脉络。

: 写这个系列文章的目的不是要和大家探讨如何实现一个大而全的单体模式,而是希望厘清其设计过程的问题,给希望挑战这个模式的程序员一些参考。我对这个模式 的观点是,尽量避免使用它,如果避免不了的话,尽量缩小这个模式的设计需求,并只用在你明确它的使用条件和可能带来的问题的环境下。

posted on 2008-03-02 23:01 long.muyi 阅读(2193) 评论(2)  编辑 收藏 引用 所属分类: Design

评论

# re: 理解并实现单体模式(一) 引子 2008-03-13 10:31 李锦俊

GPG1里那个实现就不错了。多线程模式就另行考虑  回复  更多评论   

# re: 理解并实现单体模式(一) 引子 2008-07-17 10:56 疯子阿虹

最好不要使用单件,这实际上是一个比较失败的模式。。
更好的方式是传递其引用或者指针给需要的物件。
这个已经有很多牛人讨论了。。。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

留言簿(1)

随笔分类

随笔档案

文章分类

搜索

最新随笔

最新评论

评论排行榜