锁定老帖子 主题:学习单例模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (9)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-02
楼主的贴倒是发的很多的哦
我一下午就看了你两个贴 呵呵 |
|
返回顶楼 | |
发表时间:2008-12-03
netfork 写道 哎,管理员在哪里啊~~~
发现只要不是纯技术问题,均可以在论坛(非入门版)里混~ 我觉得此人思想有点..每个人都是从不懂-学习-懂,为什么我以我的方式理解的东西不能写出来,最起码我是用心写的,你找管理员干嘛?难道我自己总结下干扰你了? |
|
返回顶楼 | |
发表时间:2008-12-03
这个主题贴改过吗 为什么我看着第二个例子没有问题啊
|
|
返回顶楼 | |
发表时间:2008-12-03
同步getInstance确实不好,因为其实只是在 new Singleton 对象时需要同步,以后在每次获得实例时都同步了,会影响效率...建议使用双检锁判断生成实例...同时建议看一下<<Head first 设计模式>>里面谈到单例模式一章,有比较全面嘅解析
|
|
返回顶楼 | |
发表时间:2008-12-03
星情泪 写道 这个主题贴改过吗 为什么我看着第二个例子没有问题啊 这个主题帖已改为正确的了,谢谢 |
|
返回顶楼 | |
发表时间:2008-12-03
wangchao_17915566 写道 星情泪 写道 这个主题贴改过吗 为什么我看着第二个例子没有问题啊 这个主题帖已改为正确的了,谢谢 我说咧,看着咋没啥问题嗫。 |
|
返回顶楼 | |
发表时间:2008-12-03
如果看过双单子,也不能避免存在多个实例。
还是感觉第一种实现适合java,而且也已经能达到目的了。 静态的肯定是只编译一次的,应该不会存在两个吧。 |
|
返回顶楼 | |
发表时间:2008-12-03
使用synchronized是避免在多个线程同时访问getInstance方法时,会返回两个实例。现在一般不在方法上加synchronized,一般在getInstantce里面加,并且使用双check,以避免第二次调用getInstantce方法时,不会再进入synchronized里面。这种方式属于lazy Initialize
但我的写法如下,不是lazy的: public class Singleton { private static final Singleton s = new Singleton(); private Singleton() { } public static Singleton getInstance() { return s; } } 前一阵JavaEye还有一个帖子,说一个老外推荐了一种singleton的写法。你可以找找那个帖子。 |
|
返回顶楼 | |
发表时间:2008-12-03
很典型的 饿汉,懒汉式单例类吧
public class Singleton { private static final Singleton s = new Singleton(); private Singleton() { } public static Singleton getInstance() { return s; } } 说是更符合java面向对象语言特点--推荐 |
|
返回顶楼 | |
发表时间:2008-12-04
呵呵,这样的文章也上首页喔~~
怀疑JavaEye的水平了喔,开玩笑呵呵 |
|
返回顶楼 | |