Các mẫu chiến lược JavaScript

Tram Ho

Một mẫu chiến lược gói gọn các thuật toán (hoặc chiến lược) thay thế cho một tác vụ cụ thể. Điều này cho phép các phương thức được thay thế trong thời gian chạy bằng các phương thức (chiến lược) khác mà khách hàng không hề hay biết. Các chiến lược về cơ bản là các nhóm thuật toán có thể hoán đổi cho nhau.

Sử dụng chiến lược

Nếu bạn muốn kiểm tra hiệu suất của các thuật toán sắp xếp khác nhau trên các mảng số, shellsort, heapsort, bubblesort, quicksort, v.v. Bằng cách áp dụng mẫu chiến lược cho các thuật toán này, chương trình thử nghiệm có thể lặp qua tất cả các thuật toán và sửa đổi chúng trong thời gian chạy để kiểm tra từng thuật toán dựa trên một mảng. Để chiến lược hoạt động, tất cả các chữ ký phương thức phải giống nhau, vì vậy các chương trình máy khách có thể thay đổi chúng mà không nhận thấy.

JavaScript sử dụng rộng rãi mẫu chiến lược như một cơ chế bổ trợ trong việc xây dựng các khung có thể mở rộng. Đây là một cách tiếp cận rất hiệu quả. Kiểm tra Dofactory JS để biết thêm thông tin.

biểu đồ

hình ảnh.png

Các đối tượng tham gia vào mẫu là:

  1. Context : Trong mã ví dụ, Shipping :
    • Duy trì tham chiếu đến đối tượng chiến lược hiện tại.
    • Hỗ trợ giao diện cho khách hàng yêu cầu tính toán chiến lược.
    • Cho phép khách hàng thay đổi chiến lược.
  2. Strategy : Trong mã ví dụ, UPS , USPSFedex sử dụng giao diện Chiến lược để thực hiện các thuật toán của họ.

ví dụ

Trong ví dụ này, một đơn đặt hàng phải được gửi từ nhà kho đến khách hàng. Bạn sẽ cần phải đánh giá nhiều công ty vận chuyển để xác định mức giá tốt nhất. Điều này hữu ích trong các giỏ hàng khi khách hàng chọn một tùy chọn vận chuyển và chiến lược đã chọn sẽ trả về chi phí vận chuyển ước tính.

Vận chuyển là bối cảnh và ba công ty vận chuyển UPS , USPSFedex là chiến lược. Công ty vận chuyển (chiến lược) được thay đổi ba lần, mỗi lần tính toán chi phí vận chuyển. Trong một tình huống trong thế giới thực, phương thức tính toán có thể gọi vào dịch vụ web của nhà cung cấp dịch vụ. Cuối cùng, hiển thị các chi phí khác nhau.

cuối cùng

Tôi luôn mắc nợ. Tôi hy vọng bạn thích bài viết này và học được một cái gì đó mới.

Hẹn gặp lại các bạn trong bài viết tiếp theo! Nếu bạn thích bài viết này, hãy nhấn “THÍCH” và đăng ký để ủng hộ tôi. Cảm ơn rất nhiều.

nguồn

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo