锁定老帖子 主题:如此使用单例模式!
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-21
在UserRule类中
应有 private UserRule(){} 顺便问一下lz,什么情景下用到的单例模式 |
|
返回顶楼 | |
发表时间:2009-01-21
晕 这是做的什么呀
|
|
返回顶楼 | |
发表时间:2009-01-21
除单例实现有点问题,其它很好啊。。简洁到楼上的每个人都能看得懂。
|
|
返回顶楼 | |
发表时间:2009-01-21
怎么就看出性能问题了?我还觉得性能提高了捏,虽然只是一点点
|
|
返回顶楼 | |
发表时间:2009-01-22
评定再次没事找事的帖子,鉴定完毕
|
|
返回顶楼 | |
发表时间:2009-01-22
最后修改:2009-01-22
private UserRule() {} public static [b]synchronized[/b] UserRule getInstance() { if (instance == null) { instance = new UserRule(); } return instance; } 多线程的情况下,加上synchronized就可以了。 哦,还有就是构造函数一定要定义为 private。 |
|
返回顶楼 | |
发表时间:2009-01-22
最后修改:2009-01-22
zozoh 写道 # public static UserRule getIn<script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/themes/advanced/langs/zh.js"></script>stance() {
# if (instance == null) { # instance<script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/plugins/javaeye/langs/zh.js"></script> = new UserRule(); # } # return instance; # } 应该写成 public static UserRule getInstance() { if (instance == null) { synchronized(UserRule.class){ if (instance == null){ instance = new UserRule(); } } } return instance; } 以保证多个线程访问的安全 这个代码看上去也忒复杂了,而且有线程风险,性能上没有提高。 |
|
返回顶楼 | |
发表时间:2009-01-22
skzr.org 写道 评定再次没事找事的帖子,鉴定完毕
,浪费时间,看了这么无聊的帖子。 |
|
返回顶楼 | |
发表时间:2009-01-22
luanma 写道 public static [b]synchronized[/b] UserRule getInstance() { if (instance == null) { instance = new UserRule(); } return instance; } 多线程的情况下,加上synchronized就可以了。 你这个浪费性能。还是你楼上的实现好。 |
|
返回顶楼 | |
发表时间:2009-01-22
如果在多线程的环境中我想会出现性能问题和安全问题.
很容易出现竞争问题,而且如果一旦出现竞争就会出现数据丢失的风险! |
|
返回顶楼 | |