我需要将 B 类型的对象链接到 A 类型的任何实例(循环依赖项)。我还可以声明另一个方法,该方法必须在 A 的构造函数之后调用,并将新的 B 链接到 A 实例。我想要实现的是不必手动调用这样的方法。这是示例代码:
public Class A{
B b;
public A(){
b = new B(this); // this does not work,
// as this references an object that has not been created yet
}
}
public Class B{
A a;
public B(A a){
this.a = a; //or something else
}
}
我评论了有问题的行。我也明白为什么它不能工作。我需要知道的是,是否有一种众所周知的设计模式可以避免这个问题?还是我应该重新设计我的班级模型,将 B 中的任何内容放入 A 中?有什么建议么?