我只想创建一个类的对象并一遍又一遍地重用同一个对象。有什么有效的方法可以做到这一点。
我怎样才能做到这一点?
public final class MySingleton {
private static volatile MySingleton instance;
private MySingleton() {
// TODO: Initialize
// ...
}
/**
* Get the only instance of this class.
*
* @return the single instance.
*/
public static MySingleton getInstance() {
if (instance == null) {
synchronized (MySingleton.class) {
if (instance == null) {
instance = new MySingleton();
}
}
}
return instance;
}
}
创建具有一个实例的类的最简单方法是使用enum
public enum Singleton {
INSTANCE
}
您可以将此与史蒂夫泰勒的答案进行比较,以了解它比替代方案简单得多。
顺便说一句:我只建议你使用无状态单例。如果你想要有状态的单例,你最好使用依赖注入。
那将是单例模式- 基本上你阻止使用私有构造函数进行构造,并使用静态同步 getter “获取”实例,如果它不存在,它将创建单个实例。
干杯,
有一种设计模式叫做 Singleton。如果你实施它,你会得到你所需要的。
看看这个,看看实现它的不同方法。
是的。它被称为单例类。您创建一个且唯一的实例并在整个代码中使用它。
您正在寻找单例模式。阅读 wikipedia 文章,您将找到如何在 Java 中实现它的示例。
也许您还想了解更多有关设计模式的信息,那么我建议您阅读“Head First Design Patterns”一书或Erich Gamma 等人的原始设计模式一书(前者提供 Java 示例,后者没有t)
您正在寻找的是Singleton Pattern。