Я пытаюсь сделать простую игру Mario в java
.При этом я хотел получить listener
, когда Goomba
(главный враг в Марио) убит.После небольшого исследования я посмотрел на Observer Pattern
Я сделал это interface
public interface GoombaDeathListener {
void onGoombaDeath(Goomba goomba);
}
Затем я сделал себе class
для моего Player
public class Player extends Entity implements GoombaDeathListener {
@Override
public void onGoombaDeath(Goomba goomba) {. . .}
}
Я также сделал Goomba
class
public class Goomba extends Entity {
ArrayList<GoombaDeathListener> deathListeners = new ArrayList<>();
public void onDeath() {
for (GoombaDeathListener listener : deathListeners) {
listener.onGoombaDeath(this);
}
}
}
Я считаю (не уверен, полностью ли я понимаю это), что это делает Goomba
observer
и я хочу более одного Goomba
, что означает, что у меня было бы несколько ArrayLists
из GoombaDeathListeners
Итак, у меня есть 2 вопроса: что я не понимаю Observer Pattern
, и какмогу ли я иметь несколько Subjects
(Goomba
) звонков onGoombaDeath(this)
когда они умрут