A menudo, cuando diseño un programa con MVC, el controlador es inútil la mitad del tiempo.
Lo que quiero decir es esto: algo sucede en la vista (por ejemplo, un clic de botón). La vista luego notifica al controlador. El controlador luego delega directamente al modelo y no hace nada más porque no tiene nada que hacer.
Por ejemplo:
El usuario presiona el botón 'Color azul'> ver le dice al controlador controller.colorBlue()
> el controlador le dice al modelo model.colorBlue()
> el modelo colorea algo azul
En este ejemplo, el controlador parece inútil. No agrega nada. La vista bien podría haber hablado directamente con el modelo.
La otra mitad del tiempo, sin embargo, el controlador realiza algún tipo de mediación entre la vista y el modelo.
Mi pregunta es esta: ¿qué tan común es esto en las estructuras MVC? ¿Es razonable que la mitad del tiempo mi controlador parezca innecesario? ¿O es esto un problema? ¿Es esto común? ¿Cómo debería abordar esto?
Si mi pregunta no es lo suficientemente clara, dígalo.
controller.colorBlue()
realmente llamamodel.setColor(0, 0, 255);
. Una razón para la separación entre Modelo y Vista es que a menudo es el caso de que tenga múltiples elementos de IU para representar un solo estado en el modelo (por ejemplo, un elemento está marcado en el menú, la barra de herramientas está presionada y el puntero cambia a un relleno todo corresponde al campo de herramienta actualmente seleccionado en el modelo), con la separación MVC, el modelo no tendría que preocuparse por sincronizar los diferentes elementos de la interfaz de usuario.