Nesse período de quase 9 anos como desenvolvedor, um dos padrões de projetos que mais me auxiliou em muitos momentos foi o Interceptor. Esse padrão aliado ao paradigma de programação orientada a aspectos (AOP) facilita muito aplicar comportamentos, filtros, entre outros artifícios aplicáveis em sistemas, principalmente os web.
É um padrão adotado por vários recursos/ferramentas existentes e muitos deles usados no dia a dia, como por exemplo o Security do Spring. O módulo de segurança do Spring intercepta todas as requisições e se baseia em informações da requisição para validar autenticação e/ou autorização.
O Security é um exemplo, existem outros como @ControllerAdvice + @ExceptionHandler, em camadas web RequestInterceptor ou ResponseInterceptor (Spring Web, RestTemplate e Feign), interceptor do Hibernate, etc...
Mencionei aplicações de interceptor's em recursos de bibliotecas Java... mas recursos/ferramentas/frameworks de outras linguagens também possuem aplicação de Interceptor!
Top comments (0)