Command Pattern + Front Controller  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
tRuNkSnEt
JavaGuru

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.




Vlw ...
aoqfonseca
Thread.start()

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)

Abraços
Andre Fonseca
Fabricio Cozer Martins
GUJ Ranger
[Avatar]

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
[MSN] [ICQ]
andreneutzling
Smalltalk

Membro desde: 21/02/2011 00:56:55
Mensagens: 1
Offline

Tu podes criar uma Factory pra criar os Commands. Nesta factory tu podes ler um properties que indica qual classe trata a acão e instanciar a classe:

Properties (colocar na pasta /WebContent/WEB-INF)

Factory

Desta forma tu não precisa colocar um monte de ifs.
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team