Maison  >  Article  >  interface Web  >  Modèles de conception JavaScript - Comportemental - Stratégie

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

WBOY
WBOYoriginal
2024-08-16 18:36:05871parcourir

JavaScript Design Patterns - Behavioral - Strategy

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

Dans cet exemple, nous avons un ensemble de réductions 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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn