Nombre (alias, twitter)
Si es tu primera vez, cómo nos conociste
Ocupación (estudiante, trabajadora)
Experimencia programando
¿Conocías los patrones de diseño?
Algo más que quieras compartir sobre ti
public class Demo {
public static void main(String[] args) {
boolean eventHappened = false;
while(!eventHappened) {
Thread.sleep(1000); //duerme 1 segundo
eventHappened = //¿seguimos esperando?
}
//¡ya podemos seguir la ejecución!
}
}
public class Demo {
public static void main(String[] args) {
EventManager eventManager = new EventManager();
Listener l1 = new Listener() {
public void trigger(Event event) {
//hacer algo con el evento
}
};
Listener l2 = new Listener() {
public void trigger(Event event) {
//hacer algo con el evento
}
};
eventManager.addObserver(l1);
eventManager.addObserver(l2);
//pasa algo que genera un objeto Evento e1
eventManager.notifyObservers(e1);
}
}
public class Event {
//objeto para contener información útil del evento
private String message;
//Los atributos se suelen inicializar en el constructor
public Event(String message) {
this.message = message;
}
//getters
public String getMessage() {
return this.message;
}
}
//Objetos interesados en eventos de este tipo
//Uso el nombre "Listener" porque mucha gente
//llama a este patrón Event-Listener
public interface Listener {
public void trigger(Event event);
}
//Gestor de Eventos
public class EventManager {
//a quién hay que notificar
private final List<Listener> observers = new ArrayList<Listener>();
//añadir observador a la lista
public void addObserver(Listener observer) {
observers.add(observer);
}
//función a la que llamará el creador del evento
public void notifyObservers(String event) {
observers.forEach(Listener::trigger);
}
}
public class Demo {
public static void main(String[] args) {
EventManager eventManager = new EventManager();
Listener l1 = new Listener() {
public void trigger(Event event) {
//hacer algo con el evento
}
};
Listener l2 = new Listener() {
public void trigger(Event event) {
//hacer algo con el evento
}
};
eventManager.addObserver(l1);
eventManager.addObserver(l2);
//pasa algo que genera un objeto Evento e1
eventManager.notifyObservers(e1);
}
}
Esta presentación está en