Мне интересно, является ли объект, задающий вопрос другому объекту, который косвенно его удерживает, «плохим» дизайном. Например ...
Требования:
Персонаж (объект) движется по сетке. Когда он пытается переместиться в другое место, ему нужно знать, занято ли это место чем-то, что его блокирует, или эта часть сетки полностью недоступна. (Обратите внимание, что сам персонаж должен знать).
В приложении состояние содержит менеджер тайлов и менеджер персонажей. Менеджер тайлов знает, какие тайлы доступны, а какие нет. Менеджер персонажей знает расположение плиток персонажей.
Было бы разумно, чтобы персонаж вызывал функцию из состояния, скажем AuthorizeMovement
, которая определяет, возможно ли перемещение через его TileManager и CharacterManager, и возвращает true, если да, false если нет?
Нарушает ли это какие-либо важные принципы, приводящие к неприятностям в будущем?
Очевидно, что это обобщено и сведено к тому, что необходимо для понимания проблемы.