Показать сообщение отдельно
Старый 22.11.2018, 15:31
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 1  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
По умолчанию Вопрос про наследование и State

Друзья!

У меня в архитектуре предусмотрены методы, переопределяемые для персонажа игрока и NPC. Это реализовано через наследование: классы CharacterPlayer и CharatcterNPC расширяют общий базовый Character.

Также у Character некоторые методы работают по-разному в зависимости от того, находится он в "обычном" или "боевом" режиме. Реализовано через паттерн проектирования "Состояние" (State). В частности, создан класс ChState и его наследники ChStateNormal и ChStateBattle. Экземпляр текущего состояния получает в конструктор ссылку на персонажа-владельца и записывается у него в переменную _state, через которую вызываются все различающиеся методы. Всё как в книжке.

Теперь вопрос. Что мне делать, если вызываемая версия метода зависит одновременно и от наследника Character (игрок/NPC), и от текущего состояния (Normal/Battle)?
__________________
Не сломано - не чини!