Dans l'il MVC original tel que décrit par son inventeur a :
- une application doit avoir un contrôleur
- un contrôleur peut fournir des entrées et des commandes à plusieurs vues,
- une application peut gérer plusieurs modèles.
Il s'agit d'une description de très haut niveau car chacun de ces principaux "composants" pourrait être composé de plusieurs classes. C'est donc à vous de décider de la meilleure correspondance.
D'autres principes, tels que la séparation des préoccupations, suggèrent d'avoir des vues différentes pour les différents objets du modèle. Ainsi, un UserAccount
et un UserAccountView
est en général une bonne approche. Mais vous pouvez toujours avoir des vues combinées qui font référence à plusieurs objets de modèle différents à la fois.
Vous trouverez de nombreuses autres variantes de MVC concernant le contrôleur. Le contrôleur unique monopolisant l'entrée de l'utilisateur, contrôlant toutes les vues et commandant les domaines, n'est plus une réalité, puisque de nombreux systèmes de fenêtrage attachent le contrôleur à une fenêtre. Ainsi, vous aurez probablement un essaim de contrôleurs, avec un AppController
et un contrôleur supplémentaire pour chaque vue, par exemple UserAccountViewController
plutôt qu'un contrôleur par objet de domaine.
Bien sûr, dans une application très simple, avec quelques objets de domaine relativement indépendants, chacun ayant une vue unique, vous pourriez trouver les objets tels que vous les décrivez.