Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Estou com dúvida no curso de Design Patterns para bons programadores, no exercício do capítulo A grande variedade de impostos e o padrão Strategy.

Como prever que devo usar o padrão de projeto Strategy?

3 respostas
solução!

Bom Ricardo, não sei se existe uma frase que englobe o caso todo. Mas acredito que quando você ver/desenvolver aqueles 'ifzillas' possa ser uma oportunidade de aplicar o padrão. Devem existir n situações, mas uma que é comum no dia-a-dia é essa.

Oks obrigado

Ricardo, acredito que visualizar vários ifs é apenas um code smell de que o design não foi bem pensando. É possível identificar a necessidade de aplicar o Strategy antes mesmo de chegar ao ponto de ver muitos ifs. Pelo que eu percebi, você precisa conhecer o domínio da sua aplicação e identificar se suas classes pertencem a um mesmo conceito mas possuem implementações diferentes da mesma estratégia.

Por exemplo, todo imposto é calculável e possui uma fórmula para obtenção do valor. Percebe-se que tanto ICMS, ISS, CONFINS, FGTS, etc tem uma fórmula embutida. E, percebe-se também, que você quer manipular esses objetos sem ficar verificando qual imposto você está trabalhando. Você deseja apenas obter o valor dele. Dessa forma, fica claro que eles compartilham uma interface.

Por fim, basta utilizar cada um chamando apensar um método que todos devem implementar! Assim, você não necessita ficar fazendo Ifs para fazer a conta para cada um pois cada objeto sabe a sua estratégia para executar.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software