Bonjour à tous.
J'utilise depuis un certain temps le pattern MVC à "ma façon" sur différents frameworks (swing, android, gwt etc...).
Je suis en train de me mettre à l'iPhone et je suis assez troublé de la manière dont le modèle MVC est promu sur iPhone. Les questions que je me pose concernent plus spécifiquement l'interaction entre la vue et le controller.
Voilà comment je concevais et utilisais le pattern MVC jusqu'à présent :
(je parle que de la vue et du controlleur)
- La vue et le controlleur communiquent l'une avec l'autre uniquement via une interface (une pour la vue et une pour le controlleur)
- Le controlleur n'a pas connaissance des éléments de la vue, mais juste d'une interface sur cette dernière.
Exemple, si la vue est uniquement constitué d'un simple label et que le controlleur désire modifier le contenue de ce label. Dans ce cas, le controlleur le demande à la vue en faisant "vue.changePresentationMesssage("blabla");".
En aucun cas le controlleur a un pointeur (ou une référence) sur le label en question et donc ne peut pas faire "label.setText("blabla");
L'énorme avantage que je vois à ma méthode est la possibilité de tester la vue en isolation (de part le fait qu'on interragit avec elle uniquement via une interface et donc qu'on garde un couplage faible entre la vue et le controlleur )
Seulement voilà, sur iPhone les controlleurs (ViewController par exemple) possèdent l'ensemble des éléments constitutifs de la vue (labels, boutons etc...)
Loin de moi biensur l'idée de critiquer un framework que je connais à peine, cependant à premier abord je trouve ça "pas propre" d'avoir un tel couplage entre la vue et le controlleur... quel est votre avis ? Y aurait-il qqc qui m'échappe ?
En fait je me demande si l'implémentation du pattern MVC que je faisais ne se rapproche pas plus au final du pattern MVP ( http://code.google.com/intl/fr/webto...using_gwt.html)
Voilà, merci d'avoir fait l'effort de me lire et si vous un commentaire/explication à apporter, you're welcome
Partager