Docs học tập
Backend nền tảng

I4 · Strategy Pattern

Context (PaymentContext) có một Strategy (PaymentStrategy interface).

I4 · Junior

Đi làm bằng xe máy, ô tô hay bus – mục tiêu như nhau, chọn cách đi lúc chạy (runtime).

Cốt lõi

  • Context (PaymentContext) có một Strategy (PaymentStrategy interface).
  • Các cài đặt: UPIStrategy, CardStrategy, NetBankingStrategy.
  • context.setStrategy(new UPIStrategy()); context.pay();

Đánh đổi

Tránh chuỗi if-else dài, tuân thủ Open/Closed.

Trong thực tế

Chuyển đổi UPI/Card/NetBanking; chọn chiến lược sắp xếp.

Bug thường gặp

Thêm phương thức thanh toán mới bằng một nhánh if-else nữa, nhưng quên sửa ở một trong nhiều chỗ có cùng khối if-else.

Tự hỏi lại

Strategy khác State pattern ở đâu?

On this page