Le principe de responsabilité unique stipule qu '"une classe devrait avoir une raison de changer".
Dans le modèle MVC, le travail du contrôleur consiste à assurer la médiation entre la vue et le modèle. Il offre une interface pour que la vue signale les actions effectuées par l'utilisateur sur l'interface graphique (par exemple, permettant à la vue d'appeler controller.specificButtonPressed()
), et est capable d'appeler les méthodes appropriées sur le modèle afin de manipuler ses données ou d'appeler ses opérations (par exemple model.doSomething()
) .
Cela signifie que:
- Le contrôleur doit connaître l'interface graphique, afin d'offrir à la vue une interface appropriée pour signaler les actions de l'utilisateur.
- Il doit également connaître la logique du modèle, afin de pouvoir invoquer les méthodes appropriées sur le modèle.
Cela signifie que cela a deux raisons de changer : un changement dans l'interface graphique et un changement dans la logique commerciale.
Si l'interface graphique change, par exemple un nouveau bouton est ajouté, le contrôleur peut avoir besoin d'ajouter une nouvelle méthode pour permettre à la vue de signaler qu'un utilisateur appuie sur ce bouton.
Et si la logique métier du modèle change, le contrôleur devra peut-être changer pour appeler les bonnes méthodes sur le modèle.
Par conséquent, le contrôleur a deux raisons possibles de changer . Est-ce que cela brise le SRP?