Observer, 事件处理模型
实体类
class Child {
public List<Observer> observers = new ArrayList<>();
public Child() {
observers.add(new Mom());
observers.add(new Dad());
}
public void wakeUp() {
WakeUpEvent event = new WakeUpEvent(System.currentTimeMillis(), "bed", this);
for (Observer o: observers) {
o.actionOnWakeUp(event);
}
}
}
事件类
class WakeUpEvent {
long timestamp;
String location;
Child source;
public WakeUpEvent(long timestamp, String location, Child source) {
this.timestamp = timestamp;
this.location = location;
this.source = source;
}
}
观察者
interface Observer {
void actionOnWakeUp(WakeUpEvent event);
}
class Dad implements Observer {
public void actionOnWakeUp(WakeUpEvent event) {}
}
class Mom implements Observer {
public void actionOnWakeUp(WakeUpEvent event) {}
}
Observer,Listener,Hook,Callback 都是观察者。