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();
    }
}

我需要 BC 相互了解,以便他们可以访问彼此的方法,但显然在运行时这会产生循环依赖并导致 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