Un controlador es un objeto que no pertenece a la interfaz de usuario, responsable de recibir o manejar un evento del sistema. Un controlador define el método para la operación del sistema.
Patrones GRASP
¿Qué es un Controlador?
Tipos de controladores
- Controlador de fachada: Representa al sistema global, dispositivos o subsistemas. La idea es elegir algún nombre de clase que sugiera una cubierta, o fachada, sobre las otras capas de la aplicación, y que proporciona las llamadas a los servicios más importantes desde la capa de UI hacia las otras capas. Mejor uso: Cuando no existen “demasiados” eventos del sistema, o no es posible que la interfaz de usuario (UI) redireccione mensajes de los eventos del sistema a controladores alternativos, como un sistema de procesamiento de mensajes.
- Controlador de casos de uso: Un controlador para cada caso de uso. Aplica el patrón Fabricación pura para dar soporte al sistema. Mejor Uso: Cuando un controlador de fachada conduce a diseños con baja cohesión o alto acoplamiento, generalmente cuando el controlador de fachada se está “inflando” con excesivas responsabilidades. Es una buena elección cuando hay muchos eventos del sistema repartidos en diferentes procesos. Se recomienda factorizar la gestión en clases separadas para que sean manejables, lo cual proporciona una base para conocer y razonar sobre el estado de los escenarios actuales en marcha.
- Controlador saturado: Clase pobremente diseñada, no centrada en algo concreto y gestiona demasiadas áreas de responsabilidades. Signos de que existe un controlador saturado:
- Existe una única clase controlador que recibe todos los eventos del sistema en el sistema, y hay muchos. Esto ocurre a veces si se elige un controlador de fachada.
- El propio controlador realiza muchas tareas necesarias para llevar a cabo los eventos del sistema, sin delegar trabajo. Normalmente esto conlleva una violación de los patrones Experto en Información y Alta cohesión.
- Un controlador tiene muchos atributos y mantiene información significativa sobre el sistema o el dominio, que debería haberse distribuido a otros; o duplica información que se encuentra en otros sitios.
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0