Códigos ou Lógicas "Bizarras"

6 respostas
fabio.cbrandao

Pessoal,

Estou abrindo este espaço para que vcs postem os código mais bizzarros que já viram nos projetos que estão trabalhando atualmente.

Fui dar manutenção em um método onde trabalho e quando vi o código e sua lógica no IF percebi q tinha q dividir aquilo com alguém… rs

segue o método

public Execucao obterExecucaoAtivaDoProcesso(ProcessoExecucao processoExecucao) throws BusinessException {
		Integer codProcExec = processoExecucao.getCodProcExec();
		
		Execucao exec = null;
		exec = this.obterExecucao(codProcExec, SituacaoExecucao.EM_CUMPRIMENTO);

		if (exec == null || (exec != null && exec.getCodExecucao() == null)) {
			exec = this.obterExecucao(codProcExec, SituacaoExecucao.POR_CUMPRIR);
		}
		if (exec == null || (exec != null && exec.getCodExecucao() == null)) {
			exec = this.obterExecucaoMaisAntiga(codProcExec);
		}
		
		return exec;
	}

6 Respostas

Marky.Vasconcelos

Tem um Off-Topic a anos sobre isso.

http://www.guj.com.br/posts/list/30/30384.java

E

Não achei tão tosco assim, para falar a verdade. A idéia por trás de ter um objeto Execucao é desenvolver os passos de um workflow. Por que é que parece tosco para você?

L

hân! pra que fazer isso cada um faz do jeito que quer, isso seria um gambiarra ,pra rodar rs

A

sou iniciante…

qual é o problema deste código? achei ele legal… hehehe :smiley:

pode me explicar qual seria uma solução melhor?

abraços

Marky.Vasconcelos

Os dois ifs fazem a mesma coisa e a segunda comparação faz obj != null sendo que ja teria passado por obj == null antes.
Fora que se ele vier null na primeira “obterExecucao” ele provavelmente nao iria conseguir na segunda.
O melhor seria:

public Execucao obterExecucaoAtivaDoProcesso(ProcessoExecucao processoExecucao) throws BusinessException {
		Integer codProcExec = processoExecucao.getCodProcExec();
		Execucao exec = this.obterExecucao(codProcExec, SituacaoExecucao.EM_CUMPRIMENTO);
		if (exec == null || exec.getCodExecucao() == null) 
			exec = this.obterExecucaoMaisAntiga(codProcExec);
		return exec;
	}
ViniGodoy

Ok, não precisamos de mais um tópico sobre isso (embora exista muita tosquisse no mundo).

Quem quiser, acompanha no link ali em cima…

Criado 17 de agosto de 2010
Ultima resposta 17 de ago. de 2010
Respostas 6
Participantes 6