Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Entwurfsmuster – Verhalten – Strategie

JavaScript-Entwurfsmuster – Verhalten – Strategie

WBOY
WBOYOriginal
2024-08-16 18:36:05871Durchsuche

JavaScript Design Patterns - Behavioral - Strategy

Das Strategie-Muster definiert eine Familie von Algorithmen, kapselt jeden einzelnen und macht sie austauschbar.

In diesem Beispiel haben wir eine Reihe von Rabatten, die auf einen Warenkorb angewendet werden können. Wir können die Funktion, die wir anwenden, an den Konstruktor übergeben und auf diese Weise den Rabattbetrag ändern.

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

Ein vollständiges Beispiel finden Sie hier? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js

Fazit

Verwenden Sie dieses Muster, wenn Sie viele ähnliche Klassen haben, die sich nur darin unterscheiden, wie sie ein bestimmtes Verhalten ausführen.


Ich hoffe, Sie fanden es hilfreich. Danke fürs Lesen. ?

Lassen Sie uns miteinander in Kontakt treten! Sie finden mich unter:

  • Medium: https://medium.com/@nhannguyendevjs/
  • Entwickler: https://dev.to/nhannguyendevjs/
  • Hashnode: https://nhannguyen.hashnode.dev/
  • Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
  • X (ehemals Twitter): https://twitter.com/nhannguyendevjs/
  • Kauf mir einen Kaffee: https://www.buymeacoffee.com/nhannguyendevjs

Das obige ist der detaillierte Inhalt vonJavaScript-Entwurfsmuster – Verhalten – Strategie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn