Skip to content

Instantly share code, notes, and snippets.

@jdewind
Created January 13, 2012 14:24
Show Gist options
  • Save jdewind/1606469 to your computer and use it in GitHub Desktop.
Save jdewind/1606469 to your computer and use it in GitHub Desktop.
Traditional Event Subscription/Listening
public interface ApplicationEvent {
public void invoke(Object value);
}
public class ApplicationEventListener implements ApplicationEvent {
private Application application;
public ApplicationEventListener(Application application) {
this.application = application;
this.application.addApplicationEventListener(this);
}
public void invoke(Object value) {
// handle event
}
}
public class Application {
private ArrayList<ApplicationEvent> events = new ArrayList<ApplicationEvent>();
public void addApplicationEventListener(ApplicationEvent event) {
events.add(event);
}
public void postEvent() {
for (ApplicationEvent event : events) {
event.invoke(this);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment