2011-01-20 24 views
6

estoy leyendo la diferencia entre MVC, MVP, MVVMAclaración: MVC, MVP, MVVM

Fuente: here

alt text

Mi duda es, los diagramas (MVP) (MVVM) muestran flecha bidireccional entre Modle y Presenter, Model y ViewModel.

Presentador y ViewModel obviamente conocedores de Model. Pero, ¿significa que Model conoce Presenter y ViewModel?

+0

en MVC pt 3 dice que View no tiene ningún conocimiento sobre el controlador. Pt 4 dice que la vista tiene conocimiento sobre el controlador. Contradice. Pt 4 debería ser view tiene conocimiento sobre el modelo en su lugar. Los pls confirman – NSN

Respuesta

7

Presentador y ViewModel obviamente conscientes de Model.Pero ¿significa que Model es consciente de Presenter y ViewModel?

No. Al menos, la forma en que veo estos patrones, el Modelo debería (idealmente) no ser consciente de nada excepto de sí mismo. Traté de resaltar eso en my discussion of MVVM mostrando solo una flecha unidireccional al Modelo.

Sin embargo, muchas personas usan una flecha en ambos sentidos hacia/desde el Modelo para representar eventos generados por el Modelo. De alguna manera depende de cómo vea esto: es probable que el Modelo necesite notificar otras capas de cambios dentro de sí mismo. Dependiendo del idioma/marco, esto puede parecerse al modelo que "habla" a otras capas. Sin embargo, trato de ser muy cuidadoso para mantener esto completamente neutral desde el punto de vista del Modelo. Por ejemplo, en C#, solo uso un evento, donde los tipos son todos específicos del modelo. Sabe que "algo" puede estar escuchando el evento, pero no tiene ningún conocimiento de lo que comprende ese "algo".

+0

@then la flecha se debe cambiar a unidireccional, ¿verdad? –

+0

@ ASP.netBeginner: Ver mi enlace + mi último párrafo (ahora editado) para más detalles ... –

+0

@Reed Wow su discusión es buena, cómo me perdí tan buena discusión. Gracias. Ahora las cosas están claras. –