2009-10-15 7 views
1

J'ai récemment terminé un projet personnel et une technique que j'ai utilisée pour décomposer l'interface consistait à avoir un contrôleur principal de vue principal qui traitait une grande partie de la logique principale du application. Ensuite, pour la plupart, il y avait beaucoup de contrôles génériques, disons un curseur et un champ de texte qui étaient liés ensemble à une seule valeur flottante. Ils constitueraient eux-mêmes un autre contrôleur (Model View Controller) avec lequel le contrôleur de vue de modèle parent pourrait interagir. Bien que la communication serait toujours en bas de la colline, jamais boucle auto-réfléchissante.Contrôleur de vue de modèle à l'intérieur d'un contrôleur de vue modèle

Donc, en général, le contrôleur interagirait avec le contrôleur du Slider et textField qui étaient liés ensemble. Mais les deux n'avaient pas accès directement à la vue des autres, donc quand un événement se produisait pour le contrôleur du champ Texte et le curseur, il était géré par le contrôleur parent qui gérerait la plus grande partie du flux logique du programme puis vers le bas. contrôleur du curseur et du champ de texte.

Cela a fonctionné très bien et a obtenu beaucoup de bonnes réponses des utilisateurs qui ont utilisé l'application et a aimé la capacité de flexion qu'il a apportée avec des commandes de réajustement très logiques qu'ils n'avaient pas à penser.

Bien que le développeur en moi s'interroge sur le pragmatisme et la pureté de la conception. La conception du système est une approche de la ville haut que j'ai pris de ce casting post Adobe:

Adobe, algorithmes généraux http://www.youtube.com/watch?v=4moyKUHApq4

, et généralement l'utilisation d'utiliser MVC comme des objets à l'intérieur des objets reflètent ce au lieu d'un mondial Contrôleur MVC.

Et des suggestions où je pourrais m'améliorer dans le prochain projet ou devrais-je utiliser la même approche encore?

Répondre

0

C'est la meilleure façon jusqu'à présent (c'est-à-dire jusqu'à ce que quelqu'un en trouve une meilleure): Créer un grand nombre de petits écosystèmes MVC qui se connaissent peu les uns les autres. Dans mon expérience, le plus gros problème que vous pouvez rencontrer dans ce scénario est que les éléments de l'interface utilisateur n'envoient pas les bons signaux pour vos contrôleurs. Mais en tant que concept général, c'est le meilleur que nous ayons.

1

Ce modèle porte le nom suivant: Presentation-Abstraction-Control. Je ne sais pas à quel point c'est utile pour vous, mais j'ai pensé que je devrais vous donner le lien wiki.

+0

Merci, je ne savais même pas que ça existait jusqu'à maintenant. J'ai même lu le livre de patrons de conception et il n'a pas mentionné cela. – Chad

Questions connexes