Лабораторная работа, РГР на тему Рефакторинг программного обеспечения (Лабораторная работа 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 при определении наносимого урона юнитам используется код типа. Здесь можно применить "Замену условного оператора полиморфизмом", введя дополнительные методы для определения специализаций игровых единиц, которые будут снижать/увеличивать урон против других специализаций.