Pattern Strategy định nghĩa một họ các thuật toán/hành vi có thể hoán đổi cho nhau, đóng gói từng cái, và làm chúng có thể tráo đổi tại runtime. Nó cho phép bạn chọn thuật toán một cách động và tránh các điều kiện phức tạp, thúc đẩy code linh hoạt, dễ mở rộng.
Pattern Strategy làm gì
STRATEGY → đóng gói các thuật toán/hành vi CÓ THỂ HOÁN ĐỔI sau một interface chung:
→ định nghĩa một họ các strategy (mỗi cái cài đặt cùng một interface)
→ context dùng một strategy qua interface → có thể TRÁO ĐỔI strategy tại runtime
→ chọn hành vi một cách động mà không thay đổi context
→ "compose" hành vi thay vì hardcode nó (ưu tiên composition hơn điều kiện)
