Что ж, после учета всех полезных комментариев, которые я получил к v1 и v2 моей диаграммы классов для игры Space Inader, я обновил свою диаграмму классов еще раз, чтобы реализовать все изменения.
БезДалее, я представляю v3:
Методы Move и Update в абстрактном классе Bullet ничего не делают, реализации методов находятся вконкретные классы, которые наследуются от пули.Каждый из этих конкретных классов также будет наследовать свойство Speed от интерфейса IMovable , и у каждого будет свой собственный набор скорости.Весь абстрактный класс Bullet и их производные от конкретного класса являются образцом стратегии.
Некоторые вопросы, которые я хочу задать: Корабль и Захватчик класс может иметь только одну пулю за раз - но класс Invader также не может иметь пуль.Это, например, когда все ряды пришельцев еще не повреждены, тогда только первый ряд пришельцев может стрелять пулями.Ряды над ними не способны стрелять.Но как мне реализовать это в классе Invader ?Должна ли переменная bullet в классе Invader захватчиков, которые не могут стрелять, быть установлена или иметь нулевое значение?Или есть лучший вариант?
Надеюсь, я все ближе и ближе к правильному дизайну, все ваши комментарии приветствуются!