La séparation des préoccupations, qui est cité comme étant un avantage de la MVC est en fait une avance d'une couche de 3-/3-système de niveau. Là aussi, la logique métier est indépendant et peut être utilisé à partir d'une présentation différente des niveaux.
Une différence principale est que dans le classique MVC le modèle peut avoir une référence de la vue. Cela signifie que lorsque des données mises à jour le modèle peut pousser ces données, éventuellement, de plusieurs points de vue. Le premier exemple est une application de bureau où les données sont visualisées dans de multiples façons. Cela peut être aussi simple que d'une table et graphe. Un changement dans le tableau (ce qui est un changement dans un point de vue) est d'abord poussé par le contrôleur pour le modèle, puis le pousse dans le dos pour le graphique (autre vue). Le graphique puis les mises à jour de lui-même.
Depuis le développement de postes de travail est sur le déclin, beaucoup de programmeurs ont ne viennent en contact avec MVC dans certaines variantes, par exemple par l'intermédiaire de l'ACI en Java EE.
Dans ces cas, le modèle presque jamais a une référence à la vue. C'est parce que le web est principalement de demande/réponse de base et après une demande a été servi, le serveur ne peut pas envoyer des informations supplémentaires. I. e. une mise à jour poussé à partir du modèle pour le client n'aurait pas de sens. Avec le reverse ajax/comet c'est en train de changer, mais de nombreux basé sur le web MVC cadres de ne pas utiliser pleinement cette.
Ainsi, dans le cas de basé sur le web MVC, le type "triangle" entre M, V et C est moins là, et que MVC variante est en fait plus proche d'un modèle n-tier que le "vrai" MVC est.
Notez aussi que certains web MVC cadres ont un niveau intermédiaire de plomberie partie entre M, V et C appelé un backing bean (Java/JSF) ou le code derrière (ASP.NET). Dans JSF le contrôleur est fourni par le cadre et la vue n'est souvent pas se lier directement à ce modèle, mais il utilise ce backing bean comme un intermédiaire. Le backing bean est très mince et fondamentalement juste pré-récupère des données à partir du modèle d'une manière et se traduit par un modèle spécifique de messages (par exemple, les exceptions) dans l'affichage des messages (par exemple, certains texte lisible).