3
respostas

Dúvida da diferença do Chain para o Strategy

Olá. Eu posso dizer que a diferença do Chain para o Strategy, é que no Strategy eu já sei que algoritmo quero executar e o chamo, mesmo tendo vários diferentes. Já no Chain, eu não sei qual será executado e então passo a responsabilidade para os próprios algoritmos fazerem esta verificação dentro deles em tempo de execução. No Chain sempre há encadeamento e devo sempre chamar mais do que um de forma encadeada para que eles façam a verificação?

3 respostas

Oi Rodrigo, realmente tudo é baseado é interface né? Acho que você entendeu certo sim! No Chain você até sabe quais são as possibilidades, mas a implementação verifica se executa ou não.. No Strategy você já instancia o que vc precisa e manda bala.

Depende de como também é implementada a sua Strategy, já vi casos em que você cria uma Lista de estratégias e manda percorrer a lista executando, é como se fosse uma mistura do Chain com o Strategy, então no inicio de cada método da estratégia ele valida se deve executar ou não.

Oi Rodrigo os conceitos são diferentes um são família de algoritmos outro cadeia de responsabilidades, no strategy ele te da a flexilidade de executar em tempo de execução outra estratégia, estratégias essas que você tem que conhecer pra tirar um melhor proveito delas, já no chain você não sabe quem vai atender a solicitação isso tá definido em uma cadeia pre configurada que pode ser modificada mas que para o cliente não fará diferença.

Espero ter ajudado e bons estudos.