Выполняем задание на Abstract Factory Pattern часть 1
В первой части мы создадим абстрактную фабрику танков, по одному экземпляру каждого танка и проведем бой между случайными танками СССР и Германии.
Структура программы:
Весь код программы находится по адресу: https://github.com/Norfin85/TankBattle
Опишу лишь пару, на мой, взгляд интересных моментов.
Момент 1:
Классы LightUssrTank, MediumUssrTank, HeavyUserTank имеют различный показатель armor. Все переменные в классах имеют модификатор private, а значит объявление переменной должно происходить в классе . Но UssrFactory возвращает объекты класса Tank, а значит поле armor будет недоступно в этих объектах. Эту проблему можно решить следующим образом:
В абстрактом классе Tank объявляется абстрактная функция getArmor:
А в конкретных класса объявляется переменная armor и реализация функции getArmor:
Момент 2: в абстрактом классе задается конструктор, а в классе-наследнике UssrMediumTank он используется используя ключевое слово super(), при этом класс UssrMediumTank имеет свой конструктор с большим количеством полей. Это позволяет нам объединять общие параметры для всех классов-наследников в один общий абстрактный класс.
И сама главная программа:
Программа пока очень громоздкая и не учитывает скорость стрельбы при встрече лоб в лоб. Это все будет исправлено во второй части путем создания таймера боя и очков действия танков. Также внутрь объектов будет помещена их ориентация.
И еще некоторые модификации...)






Задачки для изучающих Java
43 поста1.7K подписчиков
Правила сообщества
Прошу воздержаться от взаимных оскорблений.
Больше позитива, ведь программирование - это весело)