Strategy đóng gói một họ thuật toán có thể hoán đổi cho nhau vào các lớp riêng cùng một interface, để chọn hành vi lúc chạy mà không cần if/else/switch khổng lồ.
Ví dụ: PaymentStrategy với CreditCard, PayPal, Crypto; hoặc SortStrategy, CompressionStrategy, PricingStrategy. Context giữ một tham chiếu tới strategy và ủy quyền công việc cho nó; muốn đổi cách làm chỉ cần tráo strategy khác.
Lợi ích: tuân Open/Closed (thêm thuật toán mới không sửa context), loại bỏ điều kiện rẽ nhánh phức tạp, dễ test từng thuật toán.
Khác Factory: Factory lo tạo ra đối tượng nào; Strategy lo dùng hành vi/thuật toán nào trên đối tượng đã có. Factory là creational, Strategy là behavioral — thường phối hợp: factory chọn và tạo strategy phù hợp.