gpt4 book ai didi

Java 单例设计模式实现

转载 作者:行者123 更新时间:2023-12-01 22:26:16 24 4
gpt4 key购买 nike

Singleton 类的实现可以像下面这样简单吗:

public class MyClass {
private final static MyClass myClass = new MyClass();
private MyClass() {}
public static MyClass getInstance() {
return myClass;
}
}

结束:

public class MyClass {
private final static MyClass myClass;
private MyClass() {}
public static MyClass getInstance() {
if(null == myClass) {
myClass = new MyClass();
}
return myClass;
}
}

上述实现哪个更好?为什么?

我观察到的一件事是,对于上面的第一个实现,对象构造函数在静态 block (如果有)之前被调用。

此外,如果有第二个实现的线程安全版本(可能是双重空检查和同步块(synchronized block)),那么应该首选哪个版本?

最佳答案

是的。您可以使用第一个版本,但我建议您使用枚举。维基百科的条目 Singleton

In the second edition of his book Effective Java, Joshua Bloch claims that a single-element enum type is the best way to implement a singleton for any Java that supports enums.

类似的东西

public enum Singleton {
INSTANCE;
}

关于Java 单例设计模式实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28734827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com