怪易的单态实现方法

JavaGG 发布于 2010/08/05 11:50
阅读 286
收藏 2

近期看一个开项源目的源代码,发现他是用内部类方法实现单态的,想不明白为什么要这样做

public class A{

private A() {
 }

 public static A getInstance() {
  return SingletonHolder._instance;
 }

private static class SingletonHolder {
  protected static final A _instance = new A();
 }

}

代码就是这样,这样做有什么好处呢???

加载中
0
红薯
红薯

实现真正的单例?私有的构造方法可以避免被实例化。

0
郑雨涵
郑雨涵

这个是Bob Lee的写法 。

是单例模式Double-checked locking问题的比较好的一个解决方案。

0
JavaGG
JavaGG

引用来自#3楼“xiaojia2008”的帖子

这个是Bob Lee的写法 。

是单例模式Double-checked locking问题的比较好的一个解决方案。

 这个是什么问题呢???

0
JavaGG
JavaGG

引用来自#2楼“红薯”的帖子

实现真正的单例?私有的构造方法可以避免被实例化。

 重点看内部类那里,不知为什么要搞个内部类出来

0
烈冰
烈冰

和这种有啥不一样

public class A{

  protected static final A _instance = new A();

private A() {

  }

 public static A getInstance() {

  return _instance;

 }

}

0
戴威
戴威

你可以参考一下

Calendar的实例化方案

hashmap的源代码中的内部静态类entry

0
霖vv
霖vv

对象的 load时间????

返回顶部
顶部