El Principio de Responsabilidad Única establece que "una clase debería tener una razón para el cambio".
En el patrón MVC, el trabajo del controlador es mediar entre la vista y el modelo. Ofrece una interfaz para que la Vista informe acciones realizadas por el usuario en la GUI (por ejemplo, permitiendo que la Vista llame controller.specificButtonPressed()
), y puede llamar a los métodos apropiados en el Modelo para manipular sus datos o invocar sus operaciones (por ejemplo model.doSomething()
) .
Esto significa que:
- El Controlador necesita saber acerca de la GUI para poder ofrecer a la Vista una interfaz adecuada para informar sobre las acciones del usuario.
- También necesita saber acerca de la lógica en el Modelo, para poder invocar los métodos apropiados en el Modelo.
Eso significa que tiene dos razones para cambiar : un cambio en la GUI y un cambio en la lógica de negocios.
Si la GUI cambia, por ejemplo, se agrega un nuevo botón, el Controlador podría necesitar agregar un nuevo método para permitir que la Vista informe que un usuario presiona este botón.
Y si la lógica de negocios en el Modelo cambia, el Controlador podría tener que cambiar para invocar los métodos correctos en el Modelo.
Por lo tanto, el controlador tiene dos posibles razones para cambiar . ¿Rompe SRP?