Classes events in Java
Forums:
//In Java there are no events type
interface GameListener {
void gameStarted(String name);
}
class Game {
private List<GameListener> listeners = new ArrayList<GameListener>();
public void addListener(GameListener listener) {
listeners.add(listener);
}
public String name;
public void Start() {
for (GameListener listener : listeners)
listener.gameStarted(name);
}
public Game(String name) {
this.name = name;
}
}
class Statistic implements GameListener {
public int startsCount;
public String lastGame;
public void gameStarted(String name) {
startsCount++;
lastGame = name;
}
}
Statistic statistic = new Statistic();
Game heroes = new Game("Heroes");
Game doom = new Game("Doom");
//subscribe to events
heroes.addListener(statistic);
doom.addListener(statistic);
doom.Start();
heroes.Start();
//statistic.lastGame is "Heroes"
//statistic.startsCount is 2
- Log in to post comments