1
resposta

Discussão sobre o padrão Strategy

Olá, meus amigos. Acredito que uma maneira eficiente e saudável de aprender e fixar um assunto é explicar para outra pessoa oq vc entendeu sobre determinado assunto. Dessa forma, deixo aqui meu entendimento sobre o padrão Strategy. Correções e opiniões divergentes são bem vindas e desejadas.

Ao meu ver, o padrão Strategy é útil quando temos um comportamento comum entre vários componentes, porém com variações específicas. Seja:

  • um comportamento que muda de acordo com uma regra de negócio, como um imposto que muda a forma de cálculo de acordo com uma faixa de valor.
  • um comportamento compartilhado entre algumas subclasses através de uma classe em comum via herança com algumas diferenças entre eles, como diferentes tipos de veículo (moto, jetski, helicóptero) que se locomovem de cada um a sua maneira.

O padrão Strategy isola cada um dos diferentes comportamentos e delega a obrigação de definir o comportamento para o responsável por criar uma instancia da classe. No primeiro caso, ele ajuda a reduzir a quantidade de if's quando uma nova variação do comportamento é adicionada. No segundo caso, o padrão retira a complexidade adicionada pela herança, reduzindo a necessidade de criar classes herdeiras muito específicas ou a duplicação de código.

1 resposta

Perfeito Ricardo