2009-06-08 11 views
1

J'ai implémenté un modèle Model-View-Controller dans mon application. Ce n'est pas une application web mais MVC lui convient. Toutes les mises à jour du modèle sont maintenant routées via le contrôleur.Model View Controller

Même les mises à jour de la vue sont également envoyées au contrôleur et elles seront routées vers le modèle. (J'ai des classes d'état entre le modèle et le contrôleur pour la prise de décision selon le mode d'application). Dans la plupart du schéma, je vois comme vue directement mise à jour du modèle. Est-ce valable dans le contexte de ce modèle?

Répondre

2

Une vue ne devrait jamais accéder au modèle directement, toujours via un contrôleur, donc vous le faites correctement à mon avis.

3

La vue peut être un observateur du modèle.
Le modèle peut avoir accès à la vue via l'interface de l'observateur. Lorsque le modèle change, il peut informer la vue ou le contrôleur. C'est le modèle Observer qui découple le modèle de la vue et du contrôleur.

Model-View-Controller

...

Le modèle passif est utilisé lorsque l'on manipule exclusivement contrôleur le modèle. Le contrôleur modifie le modèle, puis informe la vue que le modèle a été modifié et que doit être actualisé (voir Figure 2). Le modèle dans ce scénario est complètement indépendant de la vue et le contrôleur , ce qui signifie qu'il n'y a aucun aucun moyen pour le modèle de signaler changements dans son état.
...

Le modèle actif est utilisé lorsque le modèle change d'état sans l'implication du contrôleur . Cela peut se produire lorsque les autres sources changent les données et les modifications doivent être reflété dans les vues. Envisager un affichage de stock-ticker. Vous recevez des données de stock provenant d'une autre source et souhaitez mettre à jour les vues (par exemple, une bande de téléscripteur et une fenêtre d'alerte) lorsque les données boursières changent. Parce que seul le modèle détecte les modifications à son état interne lorsqu'elles se produisent, le modèle doit notifier les vues pour actualiser l'affichage.
...

+0

Merci pour votre réponse. Dans mon cas, le modèle n'est pas entièrement actif ou passif. le modèle est mis à jour lorsque le contrôleur met à jour le modèle (via les classes d'état qui prennent la décision) et que les utilisateurs sont avertis par le modèle. En outre, le modèle est mis à jour au démarrage en lisant les paramètres par défaut à partir des fichiers xml de configuration. Dans ce cas également le spectateur n'est pas notifié. Sauf que, tous mes updatse sont contrôlés par le contrôleur. – sarat

Questions connexes