Java 在代码中的许多地方保留对对象的引用
我想知道这个问题的最佳解决方案(可能是模式): 我有两个类引用同一个对象Java 在代码中的许多地方保留对对象的引用,java,reference,Java,Reference,我想知道这个问题的最佳解决方案(可能是模式): 我有两个类引用同一个对象 class A { ... } class X { A objectA; } class Y { A objectA; } 问题是如何在一个类X或Y分配新对象时保持这些引用。 比如说 class Y { A objectA; private void doSomething(){ objectA = new A(); } } 此时,对象X已弃用引
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
编辑:
这种模式可以在我的应用程序中存在不止一次,因此我不能使用单例,而不是在
X
和Y
中直接引用a
,将对象a
存储在X
和Y
都可以访问的另一个类中(例如ObjectStorage
) 您可以使用单例设计模式
如果您需要obejct,那么为什么要将新对象指定给同一引用。为什么不为新对象创建一个新的引用。面向对象编程的关键原则之一是,您应该尝试创建彼此交互的松散耦合对象。在您的示例中,类X和Y都与类A紧密耦合。这不一定是一件坏事,但始终值得问问您自己这两个类是否都需要一个成员变量(objectA)。如果答案是肯定的,那么还有第二个问题也值得问:类X和类Y是否都需要引用类a的同一个对象实例 这个问题的答案通常是否定的。换句话说,看到多个类依赖于一个公共类并不罕见,但并不要求每个类都需要引用该公共类的同一实例 但是,如果这个问题的答案是肯定的,那么您有一些选择。单身是一种选择,但通常还有其他更好的选择-