Я работаю над проектом, в котором есть какой-то GameObject.Это может быть что угодно, шар, монета, растение.И я должен передать список GameObject другому классу, который отображает объекты на экране.
Объекты GameObject могут быть подвижными и неподвижными.Некоторые GameObjects могут пропускать объекты через них (Pervious), а некоторые нет.Некоторые GameObjetcs имеют троны (которые могут взорвать мяч), а некоторые нет.Некоторые GameObjects - это монеты, которые собираются, когда мяч попадает в них.
Итак, я сделал это -
Class GameObject{
// All things common to both entities.
// Feilds - hasThrones, canPassthrough, isCoin
...
...
}
Class MovingGameObject extends GameObject implements Moveable{
moveable logic;
...
...
}
Class FlyingGameObject extends GameObject implements Flyable{
Flyable logic;
...
...
}
И теперь у меня есть список .
Задача Когда я создаю подвижные объектыдвигаться, я делаю что-то вроде:
if gameobject is an instance of MovingGameObject{
// do something
}
if gameobject is an instance of FlyingGameObject{
// do something
}
Я знаю, что это плохой код.Как мне реорганизовать его, чтобы он не использовал проверку типов?
Один из способов, который я могу придумать, - это использование списков.Но это не совсем так, как сейчас, что если я хочу плавать сейчас?Тогда я должен хранить в новом списке для плавательных объектов.
Спасибо