2010-09-28 20 views
5

Tengo una configuración MVP (vista pasiva), y está yendo bastante bien. Hace poco leí la descripción de Martin Fowlers (http://martinfowler.com/eaaDev/PassiveScreen.html) y escribió "Otra ventaja de que la Vista pasiva es un mecanismo muy explícito. Hay muy poca dependencia en los mecanismos de Observer o las asignaciones declarativas. "Una pregunta general sobre modelo-vista-presentador (C#), ¿debería conocer el modelo al presentador?

En mi MVP tengo mi modelo completamente ajeno a un presentador, y la comunicación entre el modelo y el presentador es manejada por eventos. Inicializo mi MVP en la vista llamando al presentador ctor, p. nuevo Presentador (este, nuevo Modelo()) (donde esto se refiere a la vista).

Mi pregunta es, ¿debo hacer que el modelo tenga en cuenta un presentador para que pueda invocar la lógica del presentador directamente en lugar de utilizar eventos?

Respuesta

6

No, no deberías. Si lo hiciera, su modelo estaría estrechamente relacionado con su capa de presentación, lo que lo haría inútil fuera de ese contexto. Además, probar, depurar y mantener su capa de modelo se volvería más problemático.

+0

Entonces, ¿cómo puede pensar Martin Fowler en decir que la vista pasiva depende muy poco de los mecanismos del observador? Tal vez se refiere a un mecanismo que vincularía directamente la vista con el modelo (a través de eventos, por ejemplo). – lejon

+0

Porque el presentador dicta a la vista pasiva (mientras que una vista activa requiere menos mano, si lo desea). En otras palabras, la vista pasiva no está observando al presentador, pero el presentador está observando el modelo (y dictando a la vista en consecuencia). –

Cuestiones relacionadas