您应该使用一个监听器,它是一种称为
Observer pattern的模式.
首先,将此接口添加到B类:
public interface ChangeListener {
public void onChangeHappened();
}
其次,使用setter将侦听器变量添加到B:
private ChangeListener listener;
public void setChangeListener(ChangeListener listener) {
this.listener = listener;
}
第三,使A实现ChangeListener接口并将其自身注册为侦听器:
public class A implements ChangeListener {
public A() {
myB = new B();
myB.setChangeListener(this);
}
...
public void onChangeHappened() {
// do something with B now that you know it has changed.
}
最后但并非最不重要的是,当某些事情发生变化时,请将您的听众称为B
public void someMethodInB() {
// change happened
if (listener != null) {
listener.onChangeHappened();
}
}