2 votes

Modèle MVC dans un modèle avec plusieurs classes

Lorsque j'applique le modèle MVC à une conception comportant plusieurs classes, dois-je créer un modèle, une vue et un contrôleur pour chacune des classes concernées ?

Par exemple, pour une conception avec un domaine avec UserAccount classe, une MultimediaContent etc., aurais-je besoin de concevoir une UserAccountModel , UserAccountView , UserAccountController et un MultimediaContentModel , MultimediaContentView , MultimediaContentController etc.

J'ai cherché des exemples en ligne mais ils utilisent tous une seule classe.

1voto

Christophe Points 5220

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X