Bonjour,
J'ai une question que je me pose à chaque fois (ou presque) que je conçois une application.
Quelle est la stratégie de conception des controllers ?
Exemple concret pour un jeu de carte :
J'ai une classe Jeu et une classe Effet. Cette classe Effet correspond à une action sur le jeu (par exemple piocher une carte lancer un dé...) et la classe Jeu contient donc toutes les données de la partie, les cartes présentes par exemple.
Mon problème est donc le suivant :
Je me suis créé un JeuController qui connait le jeu courant.
Ce controller a plusieurs méthodes qui permettent d'initialiser le jeu, déterminer le nombre de cartes en jeu, etc...
Par contre j'hésite pour la façon dont implémenter la gestion des effets.
Soit :
- C'est le controller qui fait tout et a donc des méthodes comme piocherCarte, melangerPiocheJoueur, lancerDe... => Inconvénient énormément de méthodes
- On créé un effetController qui connait également le jeu courant et est spécialisé dans la gestion des effets de carte. Le JeuController devra donc par moment faire appel a EffetController => Inconvénient : Un controller qui appelle un autre controller
- Même chose sauf que EffetController ne connait pas le jeu et n'est pas accessible directement depuis la vue. Il faut donc obligatoirement passer par le JeuController => Inconvénient effetController est-il dans ce cas vraiment encore un controller plutot qu'une bibiliothèque utile ?
Merci d'avance, je tombe régulièrement sur ce genre de problème dès que j'ai beaucoup de méthodes à implémenter dans un controller ou que je me retrouve avec des controller qui sont assez sembables (ici JeuController et EffetController ont tous les deux des effets sur le jeu)
Merci d'avance
Partager