|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Перекрёстный обмен ссылками
Други! Вопрос, на который у меня уже созрел ответ, но хотелось бы этот ответ верифицировать у профи.
Итак, класс игрового действия имеет в конструкторе: data - это постоянные свойства, загружаемые из справочника, плюс 1 или 2 персонажа. Теперь класс действия получает ссылки на экземпляры участвующих персонажей и дёргать их геттеры для необходимых расчётов. Но! Есть и обратное направление. Некоторые расчёты целесообразно производить непосредственно в классе персонажа, а главное, переопределять методы в наследниках. Для этого уже экземплярам персонажей требуются некоторые значения из текущего действия. Здесь есть как минимум 2 альтернативных подхода: 1. (как сделано у меня сейчас) В момент инициализации действия его экземпляр передаёт ссылку на себя каждому из участников, пользуйся на здоровье. 2. (как мне кажется правильнее) В момент инициализации действия отдавать участникам через сеттеры только нужные значения дозированно. Верно я рассуждаю? И является ли в целом перекрёстный обмен ссылками между объектами нормальной практикой ООП?
__________________
Не сломано - не чини! |
|
|||||
Lorem ipsum
|
Бардак выходит.
Все, что необходимо для логики, максимум следует передать аргументами в соответствующий метод. Если этих аргументов (внешних данных) слишком много, возникает вопрос, как вообще такой слабо информированный класс берет на себя ответственность что-то там считать! Вытащить вычисления на уровень-два-три выше и возвращать классу только результат (сеттером или каким другим способом).
__________________
Поймай яблоко 2! |
|
|||||
Регистрация: Jul 2014
Сообщений: 42
|
Зачем создавать новый объект каждый раз? Попробуйте вынести это в менеджер, который обработает взаимодействие или API, который будет у персонажей.
Что-то типа |
Часовой пояс GMT +4, время: 12:51. |
|
« Предыдущая тема | Следующая тема » |
|
|