惰性线程安全的单例实例对于每个编码器来说都不容易理解
不,实际上非常非常简单:
public class Singleton{ private final static Singleton instance = new Singleton(); private Singleton(){ ... } public static Singleton getInstance(){ return instance; }}
更好的是,使其成为枚举:
public enum Singleton{ INSTANCE; private Singleton(){ ... }}
它是线程安全的,并且是惰性的(初始化发生在类加载时,并且Java不会加载类,直到它们被首次引用)。
事实是,您有99%的时间 根本不需要延迟加载 。在剩余的1%中,在0.9%中,上述内容完全是懒惰的。
您是否已经运行了探查器,并确定您的应用程序确实达到了真正需要首先进行延迟加载的0.01%?不这么认为。那么,您为什么要浪费时间炮制这些Rube
Goldbergesque令人讨厌的代码来解决一个不存在的问题?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)