Estoy tratando de comprender bien cómo implementar un buen desacoplamiento entre una interfaz de usuario y el modelo, pero tengo problemas para determinar exactamente dónde dividir las líneas.
He estado mirando Model-View-Presenter, pero no estoy seguro de cómo proceder para implementarlo. Por ejemplo, mi Vista tiene múltiples cuadros de diálogo.
- ¿Debería haber una clase View con instancias de cada uno de los cuadros de diálogo? Entonces, en ese caso, ¿cómo deberían interactuar los diálogos con el presentador? es decir. Si un diálogo individual necesita solicitar datos del Modelo a través del Presentador, ¿cómo debería el diálogo obtener una referencia al Presentador? ¿A través de una referencia a la Vista que se le dio durante la construcción?
- Estaba pensando que tal vez la vista debería ser una clase estática? Luego, los cuadros de diálogo GetView y obtener el presentador desde allí ...
- Había estado pensando en configurar el presentador con la propiedad de la vista y el modelo (en lugar de que la vista tenga el presentador y el presentador que tenga el modelo) y que el presentador registre devoluciones de llamada para eventos en la vista, pero eso parece mucho más acoplado (o el idioma dependía, al menos).
Estoy tratando de:
- hacer esto lo más desacoplado posible
- idealmente, es posible acoplar el presentador / modelo con vistas de otros idiomas (no he hecho un montón de cosas entre idiomas, pero sé que es posible, particularmente cuanto más
void(void)
puedo seguir, al menos una aplicación C # con un Biblioteca C ++ ... - mantenga el código limpio y simple
Entonces ... ¿alguna sugerencia sobre cómo deben manejarse las interacciones?