전략 패턴은 알고리즘 계열을 정의하고 각 알고리즘을 캡슐화하며 상호 교환 가능하게 만듭니다.
이 예에는 장바구니에 적용할 수 있는 할인 세트가 있습니다. 생성자에 적용할 함수를 전달하여 할인 금액을 변경할 수 있습니다.
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 };
전체 예가 여기에 있습니까? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js
결론
일부 동작을 실행하는 방식만 다른 유사한 클래스가 많을 때 이 패턴을 사용하세요.
도움이 되셨기를 바랍니다. 읽어주셔서 감사합니다. ?
접속하자! 다음에서 저를 찾으실 수 있습니다:
위 내용은 JavaScript 디자인 패턴 - 행동 - 전략의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!