关于单态的疑问
classA 用单态模式实现
在classB classC中都生成classA的实例,b c中的实例还是同一个吗???
一直不理解 有人能解释一下吗?见笑了!!!!
public class MySingleton {
//注意,这里是个类成员
public static MySingleton mySingleton = null;
//构造方法
public MySingleton(){
if (mySingleton == null)
mySingleton = new MySingleton();
return mySingleton;
}
}
在其他类调用MySingleton的构造方法时,会返回mySingleton,而mySingleton 又是一个类成员,所以也就有且仅有一个实例了。
如上问题:
先在b中生成实例后,做相关操作,比如存入数据等等。然后在C中生成A的实例
能否调用实例所存入的数据?
首先肯定一点: b和c中生成的实例是同一个(除非极端情况--这个实例的引用失效,那么,就要返回一个新的实例,所谓极端,就是这种情况发生的概率无穷小),如果你将数据读入到这个实例的fields当中,当然就可以访问了,因为是同一个实例嘛。
不知我是否说明白。