Java 子类相互访问
Java Subclasses accessing each other
我有一个像这样的基本 class 结构:
public class A {
}
public class B extends A {
private C objC;
public B() {
this.objC = new C();
}
}
public class C extends A {
private B objB;
public C() {
this.objB = new B();
}
}
我需要 B
和 C
相互了解,以便他们可以访问彼此的方法,但显然在运行时这会产生循环依赖并导致 java.lang.WhosebugError: null
。我已经阅读 this and this 但我似乎无法很好地解决我的情况。
有没有更好的方法来解决这个问题?
编辑 1: 在保持简单的同时更详细地描述我的情况:
public class A {
}
public class B extends A {
private C objC;
public B() {
this.objC = new C();
}
public String foo1() {
int x = C.foo3();
//do something
return Integer.toString(int);
}
public int foo2() {
// do something
}
}
public class C extends A {
private B objB;
public C() {
this.objB = new B();
}
public int foo3() {
int y = B.foo2();
//do something
return y;
}
}
如果要在不同的对象之间建立通信,请使用中介者模式。
Mediator
- 定义同事对象之间的通信接口
ConcreteMediator
- 实现 Mediator
接口并协调 Colleague 对象之间的通信。它了解所有同事及其在相互交流方面的目的。
ConcreteColleague
- 通过调解器与其他同事交流
看看这个 link : https://en.m.wikipedia.org/wiki/Mediator_pattern
我有一个像这样的基本 class 结构:
public class A {
}
public class B extends A {
private C objC;
public B() {
this.objC = new C();
}
}
public class C extends A {
private B objB;
public C() {
this.objB = new B();
}
}
我需要 B
和 C
相互了解,以便他们可以访问彼此的方法,但显然在运行时这会产生循环依赖并导致 java.lang.WhosebugError: null
。我已经阅读 this and this 但我似乎无法很好地解决我的情况。
有没有更好的方法来解决这个问题?
编辑 1: 在保持简单的同时更详细地描述我的情况:
public class A {
}
public class B extends A {
private C objC;
public B() {
this.objC = new C();
}
public String foo1() {
int x = C.foo3();
//do something
return Integer.toString(int);
}
public int foo2() {
// do something
}
}
public class C extends A {
private B objB;
public C() {
this.objB = new B();
}
public int foo3() {
int y = B.foo2();
//do something
return y;
}
}
如果要在不同的对象之间建立通信,请使用中介者模式。
Mediator
- 定义同事对象之间的通信接口
ConcreteMediator
- 实现 Mediator
接口并协调 Colleague 对象之间的通信。它了解所有同事及其在相互交流方面的目的。
ConcreteColleague
- 通过调解器与其他同事交流
看看这个 link : https://en.m.wikipedia.org/wiki/Mediator_pattern