StinePike 就在这一点上,这是编码时遇到的一个非常标准的问题。观察者(或 Java 中的监听器)模式是对此的标准实践解决方案。你应该使用你的第一个提议,你的措辞有点不清楚,所以我会为你列出来,以防我不太清楚。
让我们MyEventClass
提供一个 Listener 接口,例如MyEventClassListener
,以及添加/删除方法。然后MyClass
可以将自己附加/分离为侦听器。如果您需要,这是一个代码示例:
MyEventClass.java
public class MyEventClass {
private Set<MyEventClassListener> listeners = new HashSet<MyEventClassListener>();
// Your code here...
public void addListener(MyEventClassListener listener) {
listeners.add(listener);
}
public void removeListener(MyEventClassListener listener) {
listeners.remove(listener);
}
public void notifyListeners() {
for (MyEventClassListener listener : listeners) {
listener.somethingHappened();
}
}
}
MyEventClassListener.java
public interface MyEventClassListener {
public void somethingHappened();
}
MyClass.java
public class MyClass implements MyEventClassListener {
MyEventClass myEventClass;
// Your code here..
public void someFunction() {
// Add as listener
myEventClass.addListener(this);
}
@Override
public void somethingHappened() {
// Act on callback
}
}