锁定老帖子 主题:对单例模式的改进
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-23
最后修改:2010-06-29
package boke.mode; package boke.mode; /** * 单例模式改进 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.06.08 * */ public class Singleton { /** * * @param args */ public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); Singleton s3 = Singleton.getInstance(); Singleton s4 = Singleton.getInstance(); Singleton s5 = Singleton.getInstance(); System.out.println(s1 == s2); System.out.println(s2 == s3); System.out.println(s3 == s4); System.out.println(s4 == s5); } /** * 私有内部类 * @author 毛正吉 * */ private static class SingletonCreate { private static final Singleton instance = new Singleton(); } /** * 私有构造 */ private Singleton() { System.out.println("Singleton Constructor..."); } public static final Singleton getInstance() { return SingletonCreate.instance; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-06-23
请参考此条目:
http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom |
|
返回顶楼 | |
发表时间:2010-06-23
|
|
返回顶楼 | |
发表时间:2010-06-23
用Object Holder来实现Thread之间的visiblity.
|
|
返回顶楼 | |
发表时间:2010-06-23
keshin 写道 请参考此条目:
http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom 这篇文章将原理阐述地非常清楚~ |
|
返回顶楼 | |
发表时间:2010-06-23
这是延迟加载的单例模式
|
|
返回顶楼 | |
发表时间:2010-06-23
public enum Singleton{ INSTANCE } |
|
返回顶楼 | |
发表时间:2010-06-24
magnesium 写道 public enum Singleton{ INSTANCE } Effective Java |
|
返回顶楼 | |
发表时间:2010-06-24
包了一层有什么好处吗?我感觉没什么区别吧!
|
|
返回顶楼 | |
发表时间:2010-06-24
slaser 写道 用Object Holder来实现Thread之间的visiblity.
是不是既能 做到 延迟加载, 又不需要在每次getInstance的时候加互斥锁 等待 关于类加载的过程, 哪位大侠详细讲解下啊 |
|
返回顶楼 | |