Me pregunto si un objeto que hace una pregunta a otro objeto que lo sostiene indirectamente es un diseño "malo". Por ejemplo ...OO Design - El objeto hace una pregunta a la clase que lo mantiene indirectamente
Requisitos: El carácter (un objeto) se mueve en una cuadrícula. Cuando intenta moverse a otro punto, necesita saber si ese punto ya está ocupado por algo que lo bloquea, o si esa parte de la cuadrícula es completamente inaccesible. (Tenga en cuenta que el personaje en sí necesita saber).
En la aplicación, un estado contiene un gestor de teselas y un gestor de caracteres. El administrador de teselas sabe qué teselas son accesibles y cuáles no. El gestor de caracteres conoce las ubicaciones de los mosaicos de los personajes.
¿Sería razonable que el personaje llamara a una función desde el estado, digamos AuthorizeMovement
, que determina si el movimiento es posible a través de TileManager y CharacterManager, y devuelve verdadero si es así, falso si no?
¿Está violando alguno de los principios importantes, lo que ocasionará problemas en el futuro?
Obviamente esto se generaliza y se reduce a lo necesario para comprender el problema.
+1 de acuerdo, no es necesariamente malo. Por ejemplo, un observador le pide al objeto observado (que contiene una lista de todos los observadores) su estado después de una notificación state_changed. Solo ten cuidado con los bucles infinitos/cerraduras muertas –