17 votes

Quelle est la différence entre Model-View-Presenter et Model-View-Adapter ?

J'essaie de comprendre s'il y a une différence entre les modèles Model-View-Presenter et Model-View-Adapter, et si oui, quelle est cette différence. Je n'ai trouvé aucune ressource en ligne qui les compare, donc je ne suis même pas sûr qu'ils soient réellement distincts.

Les descriptions que j'ai trouvées à leur sujet me semblent essentiellement identiques. D'après ce que j'ai compris, dans les deux cas, le flux de contrôle est essentiellement le suivant :

View <-- Adapter/Presenter --> Model
(where Adapter/Presenter can also respond to events from View and Model)

View: the UI
Adapter/Presenter: main logic; mediator between the UI and the data model
Model: the data model

L'adaptateur/présentateur "connaît" la vue et le modèle, mais la vue et le modèle ne connaissent personne d'autre qu'eux-mêmes.

Je pense qu'il y a une subtilité qui m'échappe complètement. De quoi s'agit-il ?

12voto

rich remer Points 835

La seule chose à laquelle je peux penser est que MVA est généralement associé à la présence de plusieurs adaptateurs entre une vue et un modèle. Bien que rien ne vous empêche de le faire dans MVP, je pense que MVP implique une triade forte.

Mise à jour (des années plus tard) : rétrospectivement, je pense qu'une différence clé serait le flux de contrôle. Dans le MVP, la vue déclenche/crée/appelle le présentateur, qui délègue au modèle et répond à la vue. Dans MVA, lorsque des messages arrivent, un adaptateur est choisi, qui sert alors de médiateur entre le modèle et la vue. Étant donné que la vue MVP déclenche/crée/appelle le présentateur, il n'est pas évident de choisir entre plusieurs présentateurs (comme on choisit un adaptateur).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X