如果您有一个如下所示的 Java Singleton:
public class MySingleton {
private static MySingleton instance;
private int member;
public static MySingleton getInstance(){
if(instance==null){
instance = new MySingleton();
}
return instance;
}
private MySingleton(){
//empty private constructor
}
public int getMemberA(){
return member;
}
public int getMemberB(){
return instance.member;
}
}
...getMemberA 和 getMemberB 之间有区别吗?也就是说,访问成员与使用instance.xxx
并且只是xxx
?
注意:我知道使用单例模式的优点和缺点!
是的,有区别。
您的单例实现当前不是线程安全的,这意味着可以调用getMemberB()
在一个实例上以外所提到的那个instance
,此时您将得到不同的结果。
如果您的实现是线程安全的(因此实际上只能创建一个实例),那么它们将是等效的,并且更倾向于使用更简单的形式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)