Los servlet filters y la filter chain de Spring Security son ejemplos de, ¿qué patrón?
Opciones
- Chain of Responsibility: cada handler procesa o reenvía la petición (Opción correcta)
- Prototype: cada filtro hace una copia de la petición entrante
- Flyweight: todos los filtros comparten un único objeto de petición
- Memento: los filtros guardan el estado de la petición y lo restauran
Respuesta
Chain of Responsibility: cada handler procesa la petición o la pasa al siguiente
Por qué
En Chain of Responsibility, una petición pasa por una secuencia de handlers. Cada uno puede gestionarla, modificarla, detenerla o pasarla.
En una app web: filtro de logging, filtro de autenticación, filtro CORS y luego el controlador. Si falla la autenticación, la cadena se detiene y devuelve 401.
Otros ejemplos: middleware en Express/FastAPI, flujos de aprobación.
Recuerda
Chain of Responsibility = pipeline de handlers.