Переделал систему настройки.🔼 Количество классов возросло кратно, но появилась понятная структура и разделение обязанностей.
Ранее почти вся логика находилась в одном классе - ColorPurchaseManager.
-обрабатывал покупку
-определял доступные для покупки элементы
-отправлял запросы на активацию цвета
-хранил данные состояния машины
Пока существовал один тип цветов - система функционировала. После добавления нового типа класс стал быстро увеличиваться: появились проверки, условия, временные решения. В определённый момент стало очевидно, что он стал слишком большим.
Отдельное разочарование вызвали enum - тупо начали мешать из за сравнений
Изначально система не предусматривала расширение, поэтому интегрировать новые типи оказалось сложно.
Пришлось приостановить разработку и потратить пару дней на приведение системы в порядок: распределить обязанности, упростить логику и сделать систему более гибкой.
Да, остались области для рефакторинга, но на данном этапе я сознательно останавливаюсь. Для текущих задач этого достаточно - важнее продолжать реализовывать функции, а не бесконечно улучшать архитектуру.
Как всегда, продолжаем движение вперёд 🚀
Post #83
80

- ❤ 2
- 👍 1
- 😱 1