我想知道这个问题的最佳解决方案(可能是模式): 我有2个类引用了同一个对象
class A {
...
}
class X {
A objectA;
}
class Y {
A objectA;
}
问题是即使在一个类X或Y分配新对象时如何保持这些引用。 例如
class Y {
A objectA;
private void doSomething(){
objectA = new A();
}
}
此时对象X已弃用引用,但我希望它知道此更改。 相互传递引用是不可接受的,因此对象X无法识别对象Y。
编辑: 这种模式可以在我的应用中不止一次存在,所以我不能使用Singleton
答案 0 :(得分:0)
不要在A
和X
中直接引用Y
,而是将对象A
存储在另一个类(例如ObjectStorage
)中X
和Y
可以访问。
答案 1 :(得分:0)
您可以使用singleton design pattern
。
https://fr.wikipedia.org/wiki/Singleton_(patron_de_conception)
答案 2 :(得分:0)
如果您需要obejct,那么为什么要将新对象分配给同一个引用。为什么不为新对象创建新引用。
答案 3 :(得分:0)
OOP的一个关键原则是,您应该尝试创建彼此交互的松散耦合对象。在您的示例中,类X和Y都紧密耦合到A类。这不一定是坏事,但它总是值得问自己这两个类是否需要成员变量(objectA)。如果答案是肯定的,那么第二个问题也值得一提:类X和Y类都需要引用到A类的同一个对象实例吗?
这个问题的答案常常是否定的。换句话说,看到多个类依赖于公共类并不常见,但并不要求每个类都需要引用该公共类的同一个实例。
如果这个问题的答案是肯定的,那么你有一些选择。单身是一种选择,但通常有其他更好的选择 - Are there any viable alternatives to the GOF Singleton Pattern?