Pregunta

Cuando se implementa el patrón MVP en winforms a menudo encuentro interfaces de vista hinchado con demasiadas propiedades, setters y getters. Un ejemplo fácil con una vista con 3 botones y 7 cuadros de texto, todo valor que tiene, activar y propiedades visibles expuesta de la vista. La adición de resultados de la validación para esto, y que fácilmente podría terminar con una interfaz con propiedades 40ish. Usando el modelo de presentación, habrá un modelo con el mismo número de propiedades también.

La forma de hacerlo rápidamente sincronizar la vista y el modelo de presentación sin tener lógica presentador hinchada que pasan todos los valores de ida y vuelta? (Con ese código presentador de la línea 80 Ish, imaginan con la prueba presentador que se burla del modelo y la vista se verá líneas like..160ish de código sólo para burlarse de que la transferencia.) ¿Hay alguna marco de manejar esto sin recurrir a winforms enlace de datos? (Es posible que desee utilizar diferentes puntos de vista de ver una winforms. Según algunos, esta sincronización debe ser el trabajo presentadores ..) usarías AutoMapper?

Tal vez im haciendo las preguntas equivocadas, pero me parece MVP fácilmente se hinchado sin alguna buena solución a este problema ..

No hay solución correcta

Otros consejos

Esto es sólo una idea, y sé que algunas personas que no te guste -. Hay un montón de cosas diferentes que puedes hacer aquí

Si usted se encuentra el uso de una gran cantidad de código repetitivo, encapsular.

public class UiField<ContentType>
{
    public bool IsEnabled { get; set; }
    public ContentType Value { get; set; }
    public bool IsVisible { get; set; }
}

En su opinión, a continuación:

public interface ISampleView
{
    UiField<bool> IsStaffFullTime { get; set; }
    UiField<string> StaffName { get; set; }
    UiField<string> JobTitle { get; set; }
    UiField<int> StaffAge { get; set; }
    UiField<IList<string>> Certifications { get; set; }
}

Aquí envuelva las distintas propiedades asociadas a cada campo.

Por cierto, sugiero que no tropieza estas interfaces a mano para probar - utilizar un marco de burla

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top