我最近在一次采访中被问到:如何在 Java 中实现单例设计模式?
我有点困惑,因为有两种选择:
1)只有一个静态数据成员。静态成员,例如
private static Logger logger;
将确保在给定类的所有对象之间仅共享一个记录器。
2)实现一个限制实例的实例控制器:
public class LoggerWrapper {
private static Logger instance = null;
private LoggerWrapper() { }
public static Logger getInstance() {
if (instance == null) {
instance = new Logger ();
}
return instance;
}
}
这两种单例方法有什么区别?