Я пытаюсь создать небольшой 2D-игровой движок в Java.Java - лучший способ вызова метода каждого объекта в коллекции
Каждый тип объекта, который является сценой, расширяет класс «Объект», который имеет абстрактный метод «tick()». Кроме того, существует класс под названием «Сцена», в котором есть HashMap, содержащий все объекты сцены. Я хочу, чтобы сцена вызывала метод «tick()» каждого объекта в HashMap (60 раз в секунду).
public class Scene {
private HashMap<String, Object> objs; //HashMap containing all the objects
private void tick() {
for(Entry<String, Object> e : objs.entrySet()) {
Object o = e.value();
o.tick();
}
}
[...]
}
Теперь мне интересно, есть ли лучший, более элегантный способ достичь этого. Возможно, создав EventObject & EventListener или используя Observable и сделайте каждый объект Observer?
Вы можете сделать 'objs.values () Foreach (значение -> value.tick()). ; ' –
Что бы я изменил первым, это имя класса Object. У вас будут постоянные столкновения со стандартным, автоматически импортированным классом java.lang.Object. –
Итак, вы думаете, что использование цикла for - лучший/самый простой способ достичь этого? –