Je me demande si un objet posant une question à un autre objet qui le détient indirectement est un "mauvais" design. Par exemple ...OO Design - Objet demande une question à la classe qui le détient indirectement
Exigences: Caractère (un objet) se déplace sur une grille. Quand il essaie de se déplacer vers un autre point, il doit savoir si ce point est déjà occupé par quelque chose qui le bloque, ou si cette partie de la grille est complètement inaccessible. (Notez que le personnage lui-même a besoin de savoir).
Dans l'application, un état contient un gestionnaire d'images et un gestionnaire de caractères. Le tilemanager sait quelles tuiles sont accessibles et lesquelles ne le sont pas. Le gestionnaire de caractères connaît les emplacements des tuiles des personnages. Est-ce que le caractère peut appeler une fonction à partir de l'état, par exemple AuthorizeMovement
, qui détermine si le déplacement est possible via TileManager et CharacterManager, et renvoie true si oui, false sinon?
Est-ce que cela enfreint des principes importants, ce qui entraîne des problèmes sur la route?
Évidemment, ceci est généralisé et réduit à ce qui est nécessaire pour comprendre le problème.
+1 d'accord, ce n'est pas nécessairement mauvais. Par exemple, un observateur demande à l'objet observé (qui contient une liste de tous les observateurs) son état après une notification state_changed. Il suffit de faire attention aux boucles infinies/verrous morts –