Membro desde: 16/08/2003 03:16:25
Mensagens: 245
Offline
Estou com uma duvida relacionada ao pattern command. Eu tenho um Front Controller que tem a função de processar todas as requisições da minha aplicação (vide codigo abaixo). Porém, na hora de criar o command específico para a ação eu não consigo enchergar alguma maneira de instanciar o command sem usar ifs encadeados ou switch (afinal achava que esse era o proposito de estar usando o pattern command). Observe, que passo a ação para o metodo getCommand que por sua vez vai ter de fazer uma serie de comparações para poder executar a ação. Minha duvida é como evitar esses ifs encadeados e se estou implementando corretamente o pattern Front Controller e o Pattern Command.
Membro desde: 28/03/2006 22:58:17
Mensagens: 36
Offline
Uma forma que fiz para resolver isso foi criar um metodo dentro do command que era canDO. Este metodo recebia uma string com acao passada na URI (exatamente como vc ) e tinha um retorno booleano. Assim varria um array de ações e executava este metodo. Aquilo que retornava true eu executava
Seria algo mais ou menos assim:
E seu front Controller ficaria assim:
Esta solução as vezes pode significar uma perda de desempenho, mas fica bastante elegante e permite que se tenha mais de um comando para um mesma acao (tipo acao em sequencia)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
Cria uma classe Controller que vai ser um Command, nela vc vai receber um parâmetro que indica pra qual classe, e qual metodo do seu Front Controler ele vai passar, no seu Front Controler vc redireciona pra o jsp específico.
Fazer em Servlets puro da um pouquinho de mão de obra, dê uma olhada em algum dos web-frameworks que já fazem isso.
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4