O padrão estratégia define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis.
Neste exemplo, temos um conjunto de descontos que podem ser aplicados a um carrinho de compras. Podemos passar a função que iremos aplicar ao construtor e, dessa forma, alterar o valor descontado.
class ShoppingCart { constructor(discount) { this.discount = discount; this.amount = 0; } checkout() { return this.discount(this.amount); } setAmount(amount) { this.amount = amount; } } function guest(amount) { return amount; } function regular(amount) { return amount * 0.9; } function premium(amount) { return amount * 0.8; } export { ShoppingCart, guest, regular, premium };
Um exemplo completo está aqui? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js
Conclusão
Use esse padrão quando você tiver muitas classes semelhantes que diferem apenas na forma como executam algum comportamento.
Espero que você tenha achado útil. Obrigado por ler. ?
Vamos nos conectar! Você pode me encontrar em:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3