Swing 框架是 MVC 如何工作的一个很好的例子。每个状态更改都会触发一种事件,并且想要了解这些更改的对象实现侦听器(又名观察者)。
因此,总而言之,您应该创建一个名为 StatisticsListener 的接口,如下所示:
public interface StatisticsListener {
public void statisticsChanged(StatisticsEvent evt);
}
使用事件 StatisticsEvent:
public class StatisticsEvent {
private final Statistics changedStatistics;
public StatisticsEvent(Statistics changedStatistics){
this.changedStatistics = changedStatistics;
}
public Statistics getChangedStatistics(){
return this.changedStatistics;
}
}
...在您处理统计信息的课程中,您触发事件:
public class ClassThatHandlesStatistics {
private final List<StatisticsListener> listeners = new CopyOnWriteArrayList<StatisticsListener>();
public void doSomething(){
Statistics changed ... //do your logic
fireStatisticsChanged(new StatisticsEvent(changed));
}
protected void fireStatisticsChanged(StatisticsEvent evt){
for (StatisticsListener listener : listeners){
listener.statisticsChanged(evt);
}
}
}
像这样的东西;-)