14.3. Front Controller
Um ponto de entrada único despacha para comandos.
Resumo
- Um handler único recebe todas as requisições e despacha para objetos Command.
- Comportamento comum (segurança, i18n, log) fica em um só lugar. Use Intercepting Filters (decorators).
- Comando escolhido de forma estática (mapa URL→classe) ou dinâmica (nome da classe a partir da URL).
- Novo comando sem mexer no handler. Comandos são criados por requisição, sem problemas de thread.
- Mais complexo que Page Controller. Base de muitos frameworks web.
Perguntas-chave
responda de cabeça, depois abraQual a estrutura do Front Controller?
Um handler que recebe a requisição e um conjunto de comandos, um por ação.
O que são Intercepting Filters?
Decorators em volta do handler para tratar autenticação, log, codificação etc.
Por que criar um comando por requisição?
Para não compartilhar estado entre threads e simplificar a concorrência.
Exercícios de fixação
0/5 respondidas1.
Todas as URLs passam por
/app, que lê ?cmd=listarAlbuns e instancia ListarAlbunsCommand. Qual padrão?2.
Qual a maior vantagem do Front Controller sobre o Page Controller?
3.
Como adicionar autenticação e log a todas as requisições sem tocar nos comandos?
4.
Por que o handler cria um novo objeto Command a cada requisição?
5.
Qual a diferença entre despacho estático e dinâmico de comandos?