El patrón de estrategia define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables.
En este ejemplo, tenemos un conjunto de descuentos que se pueden aplicar a un carrito de compras. Podemos pasar la función que aplicaremos al constructor y de esa forma cambiar el monto 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 };
¿Aquí hay un ejemplo completo? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js
Conclusión
Utiliza este patrón cuando tengas muchas clases similares que solo difieren en cómo ejecutan algún comportamiento.
Espero que te haya resultado útil. Gracias por leer. ?
¡Conectémonos! Puedes encontrarme en:
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3