Hemos estado utilizando el patrón de MVP y las formas de pago con bastante éxito. Sin embargo, siempre surge una pregunta acerca de MVP:MVP y granularidad de presentador
¿Qué es buena granularidad para presentadores?
Lo que quiero decir con esto es: Con Winforms, una granularidad fina generalmente funciona bastante bien para los controles del usuario. De esta forma, es fácil reutilizar los controles del usuario y usarlos como componentes básicos mientras se diseñan GUI más complejas. Sin embargo, tener la misma (gran) granularidad con los presentadores parece ser un problema.
Por un lado, tener presentadores de grano grueso obstaculiza la capacidad de utilizar "plug-in" controles y tipo de violar el principio DRY: Múltiples presentadores a menudo tienen que aplicar la misma lógica (rellenar una lista de clientes , por ejemplo), que es usado por controles múltiples, más complejos.
Por otro lado, los presentadores de grano fino parecen limitar la capacidad de reutilizar los controles en diferentes situaciones. Por ejemplo, una vista de edición a veces puede necesitar guardar al cliente de inmediato; a veces necesita vincularlo a otra cosa; a veces solo es necesario validarlo; y así. A menudo depende del control más complejo. Pero también hay una buena cantidad de comportamiento compartido.
Tenga en cuenta que, en ambos casos, se puede lograr 1-presenter-1-view. Lo que se considera cambios de "1 vista".
¿Cuál es usualmente considerada como una de las mejores prácticas para la granularidad del presentador usando MVP y Winforms?
- presentadores de grano fino y personalizable comportamiento a través de opciones o algo por el estilo?
- Presentadores de grano grueso y baja reutilización del presentador?
- ¿Algo más?
Descargo de responsabilidad: Principalmente utilizamos Supervising Controller pero creo que también se aplica a la vista pasiva. Perdón por la larga pregunta, también.
Entiendo que los presentadores no se relacionan con ningún tipo de control de usuario directamente. El dilema es si muchos de ellos hablan con su propio presentador o si la forma final les "habla" por ellos. Esto fue útil, sin embargo, gracias. –
La única vez que lo haría si el control de usuario o el grupo de controles de usuario forman una vista completa de sí mismos. Por ejemplo, tiene una IU con pestañas y cuando hace clic en la pestaña diferente para alternar entre diferentes vistas de los mismos datos. En ese caso, cada pestaña sería una vista relacionada con la vista que contiene la forma como un todo –