Rumah  >  Artikel  >  hujung hadapan web  >  Corak Reka Bentuk JavaScript - Tingkah Laku - Strategi

Corak Reka Bentuk JavaScript - Tingkah Laku - Strategi

WBOY
WBOYasal
2024-08-16 18:36:05874semak imbas

JavaScript Design Patterns - Behavioral - Strategy

Corak strategi mentakrifkan keluarga algoritma, merangkum setiap satu dan menjadikannya boleh ditukar ganti.

Dalam contoh ini, Kami mempunyai satu set diskaun yang boleh digunakan pada troli beli-belah. Kita boleh lulus fungsi yang akan kita gunakan kepada pembina dan, dengan cara itu, menukar jumlah diskaun.

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

Contoh lengkap ada di sini ? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js

Kesimpulan

Gunakan corak ini apabila anda mempunyai banyak kelas serupa yang hanya berbeza dalam cara mereka melaksanakan beberapa gelagat.


Saya harap anda dapati ia membantu. Terima kasih kerana membaca. ?

Jom berhubung! Anda boleh menemui saya di:

  • Sederhana: https://medium.com/@nhannguyendevjs/
  • Dev: https://dev.to/nhannguyendevjs/
  • Hashnode: https://nhannguyen.hashnode.dev/
  • Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
  • X (dahulunya Twitter): https://twitter.com/nhannguyendevjs/
  • Beli Saya Kopi: https://www.buymeacoffee.com/nhannguyendevjs

Atas ialah kandungan terperinci Corak Reka Bentuk JavaScript - Tingkah Laku - Strategi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn