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?