Les modèles représentent la connaissance. Un modèle pourrait être un objet unique (plutôt inintéressant), ou il pourrait être une certaine structure d`objets. Comme tout le reste dans l`ingénierie logicielle, semble-t-il, le concept de modèle-vue-contrôleur a été inventé à l`origine par les programmeurs Smalltalk. Enfin, le contrôleur peut définir la façon dont un utilisateur ajoute une tâche, ou en marque une autre comme complète. Le Controller connecte le bouton d`ajout de la vue au modèle, de sorte que lorsque vous cliquez sur «Ajouter une tâche», le modèle ajoute une nouvelle tâche. L`exemple ci-dessus rend également le modèle réutilisable, qui est le principal avantage de MVC. Lorsque la vue ne sera jamais afficher un type d`objet de modèle, puis la combinaison de la vue et le contrôleur est très bien. Par exemple, un SinglePersonView n`affichera jamais un objet Person, de sorte que le SinglePersonView peut doubler en tant que contrôleur. Le paradigme modèle-vue-contrôleur utilise différents modèles selon le type d`application que vous concevez. Il est fréquent de trouver des choses comme intercepter les filtres, les assistants de vue, les vues composites, les contrôleurs frontaux, les objets de valeur, les façades de session, les délégués d`entreprise et les objets d`accès aux données utilisés par le modèle architectural MVC, voici quelques-uns des plus utilisés: A objet de contrôleur agit comme un intermédiaire entre un ou plusieurs objets de vue d`une application et un ou plusieurs de ses objets de modèle.
Les objets de contrôleur sont donc un conduit à travers lequel les objets de vue apprennent les modifications dans les objets de modèle et inversement. Les objets Controller peuvent également effectuer des tâches d`installation et de coordination pour une application et gérer les cycles de vie d`autres objets. Le modèle dans une application de todo peut définir ce qu`est une «tâche» et qu`une «liste» est une collection de tâches. Modèle MVC signifie modèle-vue-contrôleur modèle. Ce modèle est utilisé pour séparer les préoccupations de l`application. Voici un moyen rapide de tester si votre application s`est correctement séparée entre les rôles modèle, affichage et contrôleur: votre application est-elle skinnable? Si l`application est structurée mal comme dans l`exemple 1, alors les choses se compliquent. Actuellement, il existe deux classes Person et PersonListView. La classe person ne peut pas être branchée dans une autre vue, car elle contient du code spécifique à PersonListView.