Показать сообщение отдельно
Старый 13.06.2018, 19:58
RedHead90 вне форума Посмотреть профиль Отправить личное сообщение для RedHead90 Найти все сообщения от RedHead90
  № 2  
Ответить с цитированием
RedHead90

Регистрация: Apr 2018
Сообщений: 42
Как я понял, ты просто слишком много водрузил на CharacterView. Это так называемый антипаттерн Божественный объект. Он слишком много знает и слишком много всего делает.

Цитата:
Вью персонажа - класс CharacterView, выводит и администрирует компоненты: портрет, шкалы здоровья, статус-иконки (типа "кровотечение", "благословение" и т.п.).
Я бы сделал, чтобы для главной вьюхи все эти шкалы, портреты и области со статусами были вообще не различимы, т.е. все компоненты имеют один тип. CharacterView должен просто следить за тем, что какой-то компонент нуждается в обновлении и вызывать соответствующий метод обновления по необходимости. Т.е. вместо кучи updateStatusArea, updateHealthBars, updateOver9000Component, должен быть всего один update, который пробегается по всем компонентам и вызывает уже их собственные update, делающие свое дело. Тогда логика по обновлению статусов уйдет в StatusIconsArea. Он станет модульным и главной вьюхе уже будет все равно, сколько таких компонентов она содержит - один, как было раньше, два, как сейчас или тысячу, как ты можешь захотеть завтра.