Duvida no padrao Command e Diagrama de Classes

Opa :smiley:

Estou criando o diagrama de classes e uma aplicação e tenho alguns CMD que irão ter o mesmo nome pq funciona mais ou menos assim:

  • tem 3 tipos de telas e cada tela tem as funcionalidade iguais e só muda a regra de negócio.

Tem algum problema eu criar o CMD com o mesmo nome para as mesmas telas? Ou o ideal seria eu criar 1 CMD por ‘tipo de tela’ e dentro dele, criar o método que faz aquilo q eu preciso?

[]'s

Cara muito estranho isto que tu falou, você esta usando o padrão command, se for você tem que ter uma classe para cada comando que for disparado, sendo que o mesmo herda de uma interface comum com métodos comuns.

Exatamente como o Carlos falou, vc vai usar um command para cada acao, herdado de uma interface command:

por ex:


public interface Command{
     
    public void execute();
}

E os commands que implementarao essa interface

public class CommandQueSetaNomeDoCliente implements Command{
   
   public void execute(){
       //metodo que seta o nome do cliente         
  }
}

[quote=padcoe]Opa :smiley:

Estou criando o diagrama de classes e uma aplicação e tenho alguns CMD que irão ter o mesmo nome pq funciona mais ou menos assim:

  • tem 3 tipos de telas e cada tela tem as funcionalidade iguais e só muda a regra de negócio.

Tem algum problema eu criar o CMD com o mesmo nome para as mesmas telas? Ou o ideal seria eu criar 1 CMD por ‘tipo de tela’ e dentro dele, criar o método que faz aquilo q eu preciso?

[]'s[/quote]

Se eu entendi bem o que vc escreveu, vc quer utilizar o mesmo comando em diversos lugares, é isso? Se os componentes quando acionados tiverem a mesma ação eu não vejo problema nenhum. Inclusive muita gente cria commands genéricos, que simplesmente invocam alguma ação para o objeto que lhes é passado. O que não faz muito sentido é criar diversos comandos diferentes que fazem a mesma coisa. :stuck_out_tongue:

Falou.

Você pode também usar o padrão de projeto Strategy, já que muda a regra de negócio apenas

Amigos, eu não quero usar o mesmo Command para cada ‘modulo’ da aplicação. Eu falei justamente que cada Command que eu tenho( 1 Command para cada parte) , fazem praticamente a mesma coisa e minha dúvida não é o que é um Command ou como fazer um Command.

Minha dúvida é se tem algum problema eu ter 2 Commands com o mesmo nome no diagrama de classes. Eu ia usar um Command para cada parte da aplicação independenter de ser um CRUD ou um Relatório, mas quebrei em um CMD para o CRUD e outro para o Relatorio, mas os nomes estao ficando grandes demais.

[quote=wagnerfrancisco][quote=padcoe]Opa :smiley:

Estou criando o diagrama de classes e uma aplicação e tenho alguns CMD que irão ter o mesmo nome pq funciona mais ou menos assim:

  • tem 3 tipos de telas e cada tela tem as funcionalidade iguais e só muda a regra de negócio.

Tem algum problema eu criar o CMD com o mesmo nome para as mesmas telas? Ou o ideal seria eu criar 1 CMD por ‘tipo de tela’ e dentro dele, criar o método que faz aquilo q eu preciso?

[]'s[/quote]

Se eu entendi bem o que vc escreveu, vc quer utilizar o mesmo comando em diversos lugares, é isso? Se os componentes quando acionados tiverem a mesma ação eu não vejo problema nenhum. Inclusive muita gente cria commands genéricos, que simplesmente invocam alguma ação para o objeto que lhes é passado. O que não faz muito sentido é criar diversos comandos diferentes que fazem a mesma coisa. :stuck_out_tongue:

Falou.[/quote]

É isso mesmo, só muda o layout de relatório. To pensando de usar uma outra classe para ser chamada de dentro do CMD e nela ter o layout que eu quero, ai posso usar um pouco de IoC pra fazer isso. O que acha?

Posso dar ‘new’ dentro de um Command para chamar outro Command?

Eu acho que é relativo ao problema. Mas eu não entendi porque um command precisa ter uma referência de um layout de relatório, ainda não está claro pra mim o que o teu objeto command precisa fazer. E se você precisar ter referências de layouts de relatõrios diferentes, já pensou em como diferenciá-los e instanciar cada um corretamente? Quem sabe se tu postar trechos do teu diagrama de classes facilite pro pessoal te auxiliar!