我希望创建一个类的唯一对象,并反复重用相同的对象。是否有有效的方法来实现这一点。
如何实现呢?
如何实现呢?
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;
}
}
枚举
。public enum Singleton {
INSTANCE
}
通常使用Singleton模式来实现,但实际需要使用的情况非常少,这不是一个无害的决定。
在做出决定之前,您应该考虑替代方案。
关于为什么静态变量可能有问题,这篇文章也很有趣(Singleton是静态变量)。
你正在寻找单例模式。阅读维基百科文章,你会找到如何在Java中实现它的示例。
也许你还想了解更多关于设计模式的知识,那我建议你阅读"Head First Design Patterns"这本书或者Erich Gamma等人所著的原始设计模式书籍(前者提供Java示例,后者则没有)。