/ / Est-ce MVC lorsque la vue n'interagit pas avec le modèle? - .net, contrôleur de modèle, modèles de conception

Est-ce MVC lorsque la vue n'interagit pas avec le modèle? - .net, contrôleur de modèle, modèles de conception

J'ai "conçu un MVC (dans.NET) où la vue n’a aucun lien avec le modèle. Il ne connait que le contrôleur. Le modèle MVC traditionnel a toutes les parties qui communiquent entre elles. Dans mon cas, le contrôleur est fondamentalement un médiateur. Cela permet d'éviter toute exception ou logique hors de la vue. Il n'a aucune dépendance sur le modèle. N'est-ce plus un MVC?

Réponses:

19 pour la réponse № 1

Ce que vous décrivez est en fait un sous-ensemble de Model-View-Controller appelé Vue passive.

texte alt

La vue passive est une autre variante surmodèle-vue-contrôleur et modèle-vue-présentateur. Comme avec ces l'interface utilisateur est partagée entre une vue gère l'affichage et un contrôleur qui répond aux gestes de l'utilisateur. le changement significatif avec la vue passive est-ce que la vue est faite complètement passif et n'est plus responsable pour se mettre à jour à partir du modèle. Comme un résultat toute la logique de vue est en le controlle. En conséquence, il y a pas de dépendances dans les deux sens entre la vue et le modèle.

Martin Fowler en parle dans le lien ci-dessus et discute brièvement d'autres variations ici.


1 pour la réponse № 2

Je suppose que plutôt que MVC, c’est juste VC alors, hein?;)

Dans les implémentations MVC, la vue est abonnée àchangements dans le modèle, et agit sur le contrôleur; le contrôleur apporte des modifications au modèle, qui sont propagées aux vues par leur référence au modèle. Dans votre cas, vous avez plutôt l’impression que vous avez enfoui votre modèle dans votre contrôleur (après tout, vous devez récupérer vos données quelque part); ce n'est pas nécessairement mauvais ou quoi que ce soit, mais ce n'est pas non plus MVC au sens strict.


0 pour la réponse № 3

Votre approche ressemble beaucoup à MVP, mais je ne saurais le dire sans plus de détails.


0 pour la réponse № 4

Au sens strict du terme, non. Mais a-t-il un moyen pour la vue de communiquer avec le modèle si nécessaire sans changer l'architecture / les interfaces?

[Par exemple, si vous avez une méthode TalkToModel () implémentée, même si vous ne l'utilisez pas encore, c'est un MVC à mon avis.]