如果您有一个如下所示的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;
}
}
Run Code Online (Sandbox Code Playgroud)
... getMemberA和getMemberB之间有区别吗?也就是说,访问会员instance.xxx和刚刚之间存在差异xxx吗?
注意:我知道使用Singleton模式的优缺点!
Jon*_*eet 10
是的,有区别.
你的单例实现当前不是线程安全的,这意味着可以调用getMemberB()一个实例而不是引用的实例instance,此时你将获得不同的结果.
如果你的实现是线程安全的(所以真的只能创建一个实例)那么它们就是等价的,更简单的形式会更受欢迎.
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |