Padrões de Projeto é uma técnica de reuso de software que oferece benefícios práticos no
desenvolvimento de aplicações web, tais como prover soluções de projeto de forma consistente, orientar
equipes de desenvolvimento com diretrizes e boas práticas, melhorar o processo de comunicação com a
adoção de uma linguagem comum de padrões, entre outros.
Front Controller
O Front Controller ou Controlador Frontal é um padrão arquitetural que se comporta como um controlador tratando todas as solicitações para um site Web e então roteia para uma ação (ou comando).
Front Controller permite criar uma interface genérica para processamento de comandos.
É utilizado quanto se deseja um ponto de acesso centralizado para processamento de todas as requisições recebidas pela camada de apresentação para:
(a) controlar a navegação entre os objetos de visão;
(b) remover duplicação de código; e,
(c) estabelecer responsabilidades mais definidas para cada objeto, facilitando manutenção e extensão.
O acesso de páginas clientes sem passar por um mecanismo centralizado, pode dificultar o controle de navegação e segurança da aplicação, pois uma página pode ser aberta por alguém que não deveria ter acesso. Outro problema recorrente em aplicações desse tipo é o existência de código de controle duplicado e misturado ao código de apresentação.
Entendendo o Front Controller e entendendo o funcionamento do padrão Command podemos entender muito melhor como ambos funcionam e como eles trabalham juntos para resolver problemas recorrentes nas aplicações Web.
Command (edit, show, etc)
O padrão Command separa o mecanismo que trata a solicitação (request) do serviço que realiza a tarefa a ser executada. Command (no contexto de aplicações web) é uma adaptação do padrão de Gamma et al. (1995) como estratégia de implementação do Front Controller.
É um padrão que pode ser implementado em aplicações web na forma mais simples, até à mais elaborada. Para aplicações que adotam Servlets, por exemplo, uma solução simples é tratar o comando que vem na solicitação, enviado com parâmetro na solicitação, normalmente chamado de action ou comando.
Paginação
Paginação é um padrão para projeto de interação de interface com usuário.
É indicado quando o usuário necessita visualizar um subconjunto de dados que não serão fáceis de mostrar dentro de uma única página. Esse problema é solucionado com a adição de um mecanismo de paginação, normalmente uma barra que permite navegar entre as páginas que são geradas como resultado da paginação.
Carrinho de Compras
O padrão permite que clientes comprem produtos em uma loja virtual, utilizando a metáfora do “carrinho de compras”, onde o cliente pode selecionar os produtos antes de realizar o pagamento.
Fontes:
http://www.facom.ufu.br/~bacala/DAW/artigo2012-javamagazine107-PadroesProjetoWeb.pdf
http://www.devmedia.com.br/padroes-de-projetos-introducao-aos-padroes-front-controller-e-command/30644