Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dá pra abstrair Cadeia de responsabilidade como um "if-else orientado a objetos"?

Pelo que entendi, cada if() é transformado em um objeto até que chama o objeto SemDesconto que seria equivalente ao else.

O strategy, por sua vez, tá mais relacionado com um 'if' orientado a objetos, pois não conecta o um 'objeto if' com outro 'objeto if' como é feito no if-else da chain.

É seguro (e saudável hehe) usar essa abstração para entender ambos patterns?

if(for seguro) { .... } else if (for segudo mas....) {} else if(for seguro mas...) else if(total loucura) else {}

class AbstracaoSegura class AbstracaoSeguraMasPrecisaTer... class AbstracaoSeguroMas... class AbstracaoMaluca class AbstracaoIncorreta

var abstracao = new Abstrai(new AbstracaoSegura( new AbstracaoSeguraMasPre..)

Enfim, deixando de lado a brincadeira, posso abstrair assim?

PS: minha mente pensa de maneira muito imperativa (sou exprogramador C e Assembly)...

1 resposta
solução!

Oi Williams,

Com os patterns decorator e chain of responsibility é possível ter essa flexibilidade de passar "infinitos" objetos como parâmetro :D

Mas no caso do Strategy é diferente, pois a ideia é ter um objeto para executar uma lógica, sem que eles se conheçam entre si.