if (ServiceTypeEnum.consultar.equals(msgRequisicao.getServico())) {
return new ServiceConsultar(msgRequisicao);
} else if (ServiceTypeEnum.autenticar.equals(msgRequisicao.getServico())) {
return new ServiceAutenticar(msgRequisicao);
}
Gostaria de saber se passando por parâmetro " msgRequisicao.getServico()" é caracterizado uma má pratica ou se não seria melhor declarar uma variável recebendo o valor de retorno da função?
Nesse caso eu usaria uma variável, acho que fica mais claro além de você poder atribuir um nome que seja mais significativo dentro do contexto em que você está trabalhando. Além do mais, me parece que o tipo de retorno é uma enumeração. Se for o caso, eu sugeriria ainda o uso de swith-case.
if (ServiceTypeEnum.consultar.equals(msgRequisicao.getServico())) {
return new ServiceConsultar(msgRequisicao);
} else if (ServiceTypeEnum.autenticar.equals(msgRequisicao.getServico())) {
return new ServiceAutenticar(msgRequisicao);
}
Gostaria de saber se passando por parâmetro " msgRequisicao.getServico()" é caracterizado uma má pratica ou se não seria melhor declarar uma variável recebendo o valor de retorno da função?
[/quote]
Se você puder, refatore para ficar mais ou menos assim:
Note que ServiceConsultar e ServiceAutenticar teriam que implementar uma interface comum ou extender uma mesma classe, mas acho que o método fica mais elegante, concorda?
Boa tarde Ovelha,
acredito que para minha aplicação esse método que você me sugeriu não irá funcionar, pois o atributo msgRequisicao é uma classe serializada, que recebe informações de um arquivo XML.
[quote=malbarbosa]Boa tarde Ovelha,
acredito que para minha aplicação esse método que você me sugeriu não irá funcionar, pois o atributo msgRequisicao é uma classe serializada, que recebe informações de um arquivo XML.
[/quote]
Nesse caso, você poderia usar o esquema que te passei, certo?
Eu fiz isso em framework atender requisições Flex no Java. Procedi como o amigo falou, criando uma interface para a lógica de negócio e carregando as várias instancias em um mapa. Assim os meu if sumiram e a solução ficou mais elegante e fácil de criar novas lógicas de negócio. Assim que eu terminar a documentação posto por aqui.