最近我在接受采访时被问到:你如何在Java中实现Singleton设计模式?
我有点困惑,因为有两个选项:
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;
}
}
这两种单身方法有什么区别?