【发布时间】:2016-02-01 15:43:24
【问题描述】:
下面我发布了一个带有循环依赖的简单 Java 代码示例。
MyObject 有两个成员(myObject1 和 myObject2)引用对象本身。
有没有办法解决依赖关系但保留功能?
public abstract class AbstractMyObject {
public void myMethod(int param) {
System.out.println(param);
}
}
public class MyObject extends AbstractMyObject {
private MyObject1 myObject1;
private MyObject2 myObject2;
public MyObject() {
myObject1 = new MyObject1( this );
myObject2 = new MyObject2( this );
...
}
private void aMethod() {
myObject1.doSomething();
myObject2.doSomething();
}
}
public class MyObjectWrapper {
private MyObject myObject;
public MyObjectWrapper (MyObject myObject) {
this.myObject = myObject;
}
public void myMethod(int param) {
this.myObject.myMethod(param);
}
}
public class MyObject1 extends MyObjectWrapper {
public MyObject1(MyObject myObject) {
super(myObject);
}
private void aMethod() {
myMethod(1);
}
public void doSomething() {
...
}
}
public class MyObject2 extends MyObjectWrapper {
public MyObject2(MyObject myObject) {
super(myObject);
}
private void aMethod() {
myMethod(2);
}
public void doSomething() {
...
}
}
【问题讨论】:
-
这真的是 Java 吗?检查你的构造函数!
-
你想保留什么功能?
标签: java dependencies circular-dependency