"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Modèles de conception JavaScript - Comportemental - Stratégie

Modèles de conception JavaScript - Comportemental - Stratégie

Publié le 2024-11-01
Parcourir:685

JavaScript Design Patterns - Behavioral - Strategy

Le modèle stratégie définit une famille d'algorithmes, encapsule chacun d'entre eux et les rend interchangeables.

Dans cet exemple, nous avons un ensemble de remises qui peuvent être appliquées à un panier. Nous pouvons transmettre la fonction que nous appliquerons au constructeur et ainsi modifier le montant actualisé.

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 };

Un exemple complet est ici ? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js

Conclusion

Utilisez ce modèle lorsque vous avez de nombreuses classes similaires qui diffèrent uniquement par la façon dont elles exécutent certains comportements.


J'espère que cela vous a été utile. Merci d'avoir lu. ?

Connectons-nous ! Vous pouvez me trouver sur :

  • Moyen : https://medium.com/@nhannguyendevjs/
  • Dév : https://dev.to/nhannguyendevjs/
  • Hashnode : https://nhannguyen.hashnode.dev/
  • Linkedin : https://www.linkedin.com/in/nhannguyendevjs/
  • X (anciennement Twitter) : https://twitter.com/nhannguyendevjs/
  • Achetez-moi un café : https://www.buymeacoffee.com/nhannguyendevjs
Déclaration de sortie Cet article est reproduit sur : https://dev.to/nhannguyendevjs/javascript-design-patterns-behavioral-strategy-152d?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3