Question

J'essaie généralement d'éviter à tout prix les relations bidirectionnelles. Récemment, j'ai essayé de suivre une philosophie de conception plus centrée sur le domaine et je cherche des conseils de la meilleure façon de résoudre un problème spécifique.

J'implémente une grille 2D de base. Il y a 3 classes de base, des articles, des carreaux (possède une liste d'éléments) et World (a un tableau 2D de tuiles).

J'ai du mal à mettre la méthode Move () qui déplace un élément d'une tuile à une tuile voisine. Mon inclinaison initiale serait de placer la méthode de déplacement dans la classe d'élément car c'est l'élément qui se déplace réellement.

Cependant, cela créerait une dépendance circulaire. Dans le passé, j'ai toujours travaillé avec des objets stupides, auquel cas la méthode Move () était dans une couche supérieure (une sorte de WorldManager ou MoveManager) qui connaît à la fois les tuiles et les éléments. Je suis intéressé par les propositions que les autres pourraient avoir qui peuvent éviter la dépendance circulaire tout en maintenant la philosophie centrée sur le domaine.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top