Para deixar o código mais bonito qual é o pattern que usamos para evitar os if’s???
A única que trabalho é com reflection… legal, mas mtas vezes não da para usar reflection… e agora?
e é o if que sempre resolve bugs rsrsr
e agora…
if(isIf())?
Para deixar o código mais bonito qual é o pattern que usamos para evitar os if’s???
A única que trabalho é com reflection… legal, mas mtas vezes não da para usar reflection… e agora?
e é o if que sempre resolve bugs rsrsr
e agora…
if(isIf())?
A questao nao e evitar IF, e sim evitar o USO ABUSIVO de IF.
mas o certo seria evitar ao máximo certo?
como fazer?
blz vlw… vou dar uma olhada com calma neste cara…
Para deixar o código mais bonito qual é o pattern que usamos para evitar os if’s???
A única que trabalho é com reflection… legal, mas mtas vezes não da para usar reflection… e agora?
e é o if que sempre resolve bugs rsrsr
e agora…
O não uso de if está diretamente relacionada ao uso de polimorfismo e inversão de controle.
Formalmente o seu codigo faz if para decidir o que fazer a seguir baseado em alguma propriedade de algum objeto.
Isto acontece pq vc não está deixando o objeto fazer o trabalho e está chamando para si a decisão.
Se o objeto já está lá com o valor da propriedade porque não deixar ele fazer o trabalho para essa propriedades ?
Moral da historia: vc implementa um metodo no objeto e invoca o método simplesmente. Sem ifs.
Conforme o objeto é diferente ou seu estado é diferente o resultado da invocação será diferente.
Dois padrões relacionados com isto : State e Strategy.
State define métodos com base em um estado. É util para mudar de estado onde cada método significa uma ação sobre o estado.
Stategy define algoritmos com base me propriedades. O objeto principal escolhe uma estratégia com base nos seus atributos e invoca um método no objeto estratégia 9passando-se a si mesmo para parametro , ou não). Aqui ha um if na decisão da escolha da estratégia, mas isso fica dentro do objeto principal e não espalhado pelo seu codigo. Quando uma estratégia nova aparecer o objeto principal terá mais um else, mas vc não terá que mudar o codigo que invoca o objeto principal. Como se espera que vc invoque o objeto principal muitas vezes é um ganho de não repetir o if de decisão em todo o lugar ao longo do seu codigo. ( é o principio de não repetir código. Código repetido é código não encapsulado)
Eu não diria “evitar ifs”. Se o código é complexo, é complexo e acabou.
Eu diria que muitas vezes:
As pessoas não sabem usar “&&” ou “||”.
Então muitas vezes se usa a programação que chamo “triangular” porque as listagens ficam com aninhamentos imensos - 5 ifs, um dentro do outro, porque a pessoa não sabe usar “&&”.
As pessoas não sabem usar exceptions direito, e acabam testando um monte de condições de erro pelo retorno dos métodos, como se ainda estivéssemos usando C (é claro que C++ também tem exceptions).
Acredito tambem que evitar ifs não exista.
Você deve desenvolver seu codigo apenas com uma logica simples e objetiva.
(Opinião minha)
Acredito tambem que evitar ifs não exista.
Você deve desenvolver seu codigo apenas com uma logica simples e objetiva.
(Opinião minha)
Para mim, quanto mais um sistema usa if menos ele usa da oo.
Acredito que a oo tem muitos recursos que nos faz esquecer um pouco os if’s
Concordo com você lelodois, na minha opinião, evitar “ifs” é uma boa prática, além de que, normalmente você acaba deixando o código mais orientado a objetos, e desta forma, mais inteligível.
E se você analisar, muitos padrões de projeto usam o acoplamento abstrato para resolver este “problema”, um exemplo desses é o próprio Strategy que citei acima.
Concordo com você lelodois, na minha opinião, evitar “ifs” é uma boa prática, além de que, normalmente você acaba deixando o código mais orientado a objetos, e desta forma, mais inteligível.
E se você analisar, muitos padrões de projeto usam o acoplamento abstrato para resolver este “problema”, um exemplo desses é o próprio Strategy que citei acima.
Isto ai pozzo!!!
tenho que parar e ver este esquema de abstract com calma…
sei que existem diversos meios e frameworks (injeção de dependencias, aop, spring)
mas mesmo assim, qdo vc pega um sistema já pronto para dar manutenção é meio que uma obrigatorieadde colocar if
para resolver bugs… isto que eu quero evitar, saco?
vlw
agradeço pela opiniao de todos
Para mim, quanto mais um sistema usa if menos ele usa da oo.
Acredito que a oo tem muitos recursos que nos faz esquecer um pouco os if’s
Não quis dizer que era pra usar if’s “adoidado” rs
só disse que existem casos que tem de usar.mas que sempre devemos buscar um codigo limpo . e bem claro.
só isso. não discordo de vocês.
afinal estou aqui para adquirir experiencia. e não para critica-los rsrs 
Para mim, quanto mais um sistema usa if menos ele usa da oo.
Acredito que a oo tem muitos recursos que nos faz esquecer um pouco os if’sNão quis dizer que era pra usar if’s “adoidado” rs
só disse que existem casos que tem de usar.mas que sempre devemos buscar um codigo limpo . e bem claro.
só isso. não discordo de vocês.
afinal estou aqui para adquirir experiencia. e não para critica-los rsrs![]()
Entendi rafael, você quis dizer que não e “proibido” usar ifs rsrs
saquei, realmente existem algumas situações que não tem como a gente evitar.
vlw