Muitos ifs é má prática?

Humm… entendi.

Eu prefiro a segunda opção, apesar de ela parecer mais “congestionada”, pelo fato de ela ser mais orientada a objetos (sem ifs). A primeira opção é bastante linear.

É claro que, como já disseram, o que vale é o bom senso; ou seja, quando a coisa é muito simples tanto faz uma solução ou outra. Os mais aficcionados em OO irão certamente optar pela sua segunda opção, os iniciantes (principalmente os que vem de linguagens procedurais) optam pela sua primeira opção.

A segunda opção vai fazer com que vc pense na OO (se querer isso é lógico) para resolver os problemas caso o código aumente de tamanho a primeira opção vai lhe deixar cada vez mais longe da OO quando o código aumentar, porque ele é linear, sem falar no risco de alta dependencia na lógica do código.

flws

tem casos que vc podera remover ifs usando um Map de ações… usei isto uma vez… imagine a seguinte situação… vc tem codigos de A a Z que são dados de entrada dependendo cada codigo vc ira executar uma determinada ação… para isto vc pode usar um mapa de ações e não necessariamente um switch gigante muito menos ifs… pode parecer meio gambiarrento um mapa de ações porem e um uso bastante proveitoso de polimorfismo… mas depende de cada caso… tera casos que polimorfismo podera eliminar centenas de ifs e switchs e casos que vc realmente precisara deles… por exemplo em uma grande maquina de estados não vejo muita saida para com ifs…

[quote=Mark_Ameba]Agora pensando nisso o que é melhor em tratamento de eventos em Swing?
Uma anonymous class para cada evento de botão ou então um Listener com if/else if/…/else if/else para jogar a ação para algum método?

De certo modo também é difiçil ler muitas anonymous class.[/quote]

Uma anonymous class para cada evento cujo método actionPerformed (ou os métodos correspondentes caso seja outro tipo de listener) simplesmente chame um método da classe externa.
Dá mais linhas de código, mas fica muito mais simples, mais fácil de entender e mais fácil de evoluir.

[quote]bom… comentario de mais, já demostra que o codigo não ta muito legal, isso quando o comentario é dentro do código, não to falando de javadoc … e se vc ta tendo que em todo canto checar o que vc ta fazendo, então mostra que todo mundo ta se responsabilizando por testar seu código… normalmente o OO não ta legal nesses casos.

o ideal é vc procurar ver quem é responsável por oque, e deichar para os responsáveis para fazer seus testes… [/quote]

Na verdade, o código que estou mexendo já foi criado por alguém que nem está mais na empresa.
Eu tenho que customizá-lo para novas funcionalidades sem danificar o que já está funcionando.
Obrigado mais uma vez, estou analizando todas as sugestões e quando aplicáveis, com certeza irei usá-las.
abs.

Eu uso um Map<JButon, Method> mesmo… só queria saber ^^.

Bem pessoal,

Na época que eu estava estudando pra tirar uma certificação da Borland, meu instrutor dizia que é possível conhecer o nível do programador pela quantidade de IF´s que ele utiliza…

Concordo com o pessoal quando a resposta é “depende”…rs

Na minha opnião, a quantidade de IF´s pode ser resultado de uma visão limitada de lógica ou realmente não tem como fazer de outra forma.

Sugestão :
Entregue a mesma situação lógica para 2 programadores…se um fizer com 10 If´s e o outro com 5 If´s… e ambos chegaram ao mesmo resultado e o mesmo nível de tratamento da informação…pode acreditar, isso é uma “má prática”.

Abraços,
Francisco Rosemberg