【发布时间】:2010-09-01 09:48:36
【问题描述】:
为什么模式被认为是损坏的?对我来说看起来不错?有什么想法吗?
public static Singleton getInst() {
if (instace == null) createInst();
return instace;
}
private static synchronized createInst() {
if (instace == null) {
instace = new Singleton();
}
}
【问题讨论】:
-
您可以通过使用 DI/IOC 容器并允许容器控制对象的生命周期而不是将此类逻辑嵌入到对象本身中来完全避免这个问题......不是答案,而是一些东西思考。
-
问题中发布的代码是否甚至算作双重检查锁定的示例?锁被检查一次。
-
@matt 我在这里看到 if(instance==null) 两次
标签: java concurrency singleton double-checked-locking