Creative Commons License
本Blog采用 知识共享署名-非商业性使用-禁止演绎 3.0 Unported许可协议 进行许可。 —— Fox <游戏人生>

游戏人生

游戏人生 != ( 人生 == 游戏 )
posts - 50, comments - 350, trackbacks - 0, articles - 7

设计模式(三)——Singleton

Posted on 2008-11-19 23:37 Fox 阅读(1514) 评论(3)  编辑 收藏 引用 所属分类: T技术碎语

不知道Singleton算不算用的最多的,平时用的时候,往往都是直接敲下面一段:

……

不是不想改,就是懒,敲多了已经不觉得这么写多浪费时间了,按大家的说法,这样写至少有这么几个缺点:

1. 必须在程序结束前手动释放,这不仅是RP问题,如果你借了内存不主动还,说明你RP差,但被别人搞丢了(宕机)导致你还不上,说明别人RP差?所以,这还是个问题;

2. 线程同步问题,如果Singleton实例跨线程使用,上例不安全,在Initial和Release时加锁可以解决;

3. 最大的问题:不能重用。

阅读全文

Feedback

# re: 设计模式(三)&mdash;&mdash;Singleton[未登录]  回复  更多评论   

2008-11-20 18:21 by 111
史上最烂单例!

# re: 设计模式(三)&mdash;&mdash;Singleton  回复  更多评论   

2008-11-20 20:15 by Andy go Andy go go
没必要使用Initial, Release吧。是类的使用变得复杂,而且容易出错。
提供一个getSingleton接口就错不多了, 另外,如果要在多线程中使用,可以使用
Singleton模式的变体—Double-checked locking模式。

# re: 设计模式(三)&mdash;&mdash;Singleton  回复  更多评论   

2008-11-20 21:20 by Fox
麻烦大家“阅读全文”后回复,谢谢:D

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
.NET频道  博客园社区  闪存
网站导航: