El Principio de Responsabilidad Única establece que "una clase debe tener un motivo 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 las acciones realizadas por el usuario en la GUI (por ejemplo, permite que la Vista llame a 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 ofrecerle a la Vista una interfaz adecuada para informar las acciones de los usuarios.
- También debe conocer 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, es posible que el Controlador deba agregar un nuevo método para permitir que la Vista informe a un usuario presionando 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 . ¿Se rompe el SRP?