public class ButtonClickEvent extends AbstractEvent {
// ...
}
public class ButtonClickDetective extends AbstractDetective {
@Override
public void handleEvent(Event event) {
if (event instanceof ButtonClickEvent) {
ButtonClickEvent buttonClickEvent = (ButtonClickEvent) event;
// ...
}
}
}
public class ButtonClickMonitor implements Monitor {
@Override
public void notify(Event event) {
if (event instanceof ButtonClickEvent) {
ButtonClickEvent buttonClickEvent = (ButtonClickEvent) event;
// ...
}
}
}
public static void main(String[] args) {
ButtonClickDetective detective = new ButtonClickDetective();
ButtonClickMonitor monitor = new ButtonClickMonitor();
detective.registerMonitor(monitor);
ButtonClickEvent event = new ButtonClickEvent();
detective.triggerEvent(event);
}