在 Java 中编写单例的不同方法
用java编写单例的经典是这样的:
public class SingletonObject
{
private SingletonObject()
{
}
public static SingletonObject getSingletonObject()
{
if (ref == null)
// it's ok, we can call this constructor
ref = new SingletonObject();
return ref;
}
private static SingletonObject ref;
}
如果需要在多线程情况下运行,我们可以添加同步关键字。
但我更喜欢把它写成:
public class SingletonObject
{
private SingletonObject()
{
// no code req'd
}
public static SingletonObject getSingletonObject()
{
return ref;
}
private static SingletonObject ref = new SingletonObject();
}
我认为这更简洁,但奇怪的是,我没有看到任何以这种方式编写的示例代码,如果我以这种方式编写代码,是否有任何不良影响?