Лабораторная работа, РГР на тему Рефакторинг программного обеспечения (Лабораторная работа 3)
-
Оформление работы
-
Список литературы по ГОСТу
-
Соответствие методическим рекомендациям
-
И еще 16 требований ГОСТа,которые мы проверили
Скачать эту работу всего за 290 рублей
Ссылку для скачивания пришлем
на указанный адрес электронной почты
на обработку персональных данных
Содержание:
Оглавление
ЦЕЛЬ РАБОТЫ 3
ПОСТАНОВКА ЗАДАЧИ 4
АНАЛИЗ ПЕРВОНАЧАЛЬНОГО ВАРИАНТА ПРОГРАММНОГО КОДА 5
РЕЗУЛЬТАТЫ РЕФАКТОРИНГА 6
ВЫВОДЫ ПО РАБОТЕ 7
ПРИЛОЖЕНИЕ А. ИСХОДНЫЙ КОД 8
ПРИЛОЖЕНИЕ Б. КОД ПОСЛЕ РЕФАКТОРИНГА 16
Фрагмент текста работы:
АНАЛИЗ ПЕРВОНАЧАЛЬНОГО ВАРИАНТА ПРОГРАММНОГО КОДА
В методе Attack класса Sniper во всех условных ветвях кода, одна из которых обязательно выполняется (id всегда от 1 до 4), выполняется присваивание true флагу was_attack — следовательно можно применить «Консолидацию дублирующихся условных фрагментов», вынеся присваивание после if. Также стоит объединить if-ы в цепочку if-else, чтобы предотвратить излишние проверки после срабатывания одного из них.
После выноса присваиваний можно дополнительно применить «Удаление управляющего флага», заменив присваивания на return и избавившись от переменной was_attack.
В методе Move класса Sniper тела проверок по одной координате (x или y) практически совпадают. Это хорошая возможность применить «Консолидацию условного выражения».
Далее в этом же методе можно применить «Декомпозицию условного оператора» для упрощения понимания того, что юнит класса Sniper двигается вдоль границы игрового поля.
В методах Attack при определении наносимого урона юнитам используется код типа. Здесь можно применить «Замену условного оператора полиморфизмом», введя дополнительные методы для определения специализаций игровых единиц, которые будут снижать/увеличивать урон против других специализаций.