Skip to content

Latest commit

 

History

History
41 lines (28 loc) · 3.13 KB

7 Redundant classes.md

File metadata and controls

41 lines (28 loc) · 3.13 KB

Лишние АТД

Идея

Отфильтровав ранее выделенные АТД по специальным правилам проектирования, на каждом шаге смог найти следующие лишние классы.

В проектировании

Move - Bridge - Передает и высчитывает результат хода каждого игрока(человека или NPC).

Название является глаголом, но как бы мне его заменить? Создать интерфейс взаимодействия двух бойцов для битвы? По сути это он и был.

В реализации

Товар на полках магазина - HashMap.

Товар на полках магазина - не подходит, так как просто является полем в классе магазина. Возможно потребуется только для обертки над базовой коллекцией.

В анализе

Тут наибольшее число классов и наименьшее кол-во их для отсеивания. Некоторые сомнения вызывал:

BattleResult - Итог боя - отчет.

Но он кроме переданных в него аргументов так же занимается тем, как отобразить их, пусть даже для этого генерирует HTML/CSS и JS, все таки это поведение инкапсулирется в нем.

Итог

По признаком, по которым стоит отделять ненужные классы отбраковал:

1/3 классов проектирования Так же под вопросом был Timer, но если не вводить его, то надо разделять это состояние времени по всем остальнымм классам, либо добавлять его в контейнер. Тем не менее, даже в контейнере это стоило бы вынести в отдельный класс.

Timer - Singleton - С начала входа в систему и в любом ее месте продолжается отсчет времени, которое еще можно провести в игре.
Timer - не подходит по причине того, что делает что-то определенное - отсчитывает время и прерывает выполнение программы при определенных условиях, когда работа законченна. Тем не менее, это одна из основных задач игры. Возможно это должно находиться в классе Application, с которого все стартует?

1/4 классов реализации

1/12 классов анализа

Из чего можно заметить, что больше всего лишнего было добавлено на шаге проектирования :).