Design Patterns: Mẫu Strategy
Định nghĩa
Strategy là mẫu thiết kế dùng để định nghĩa một họ các thuật toán, đóng gói mỗi thuật toán đó và làm cho chúng có khả năng thay đổi dễ dàng.Strategy cho phép giả thuật tùy biến một cách độc lập tại các Client sử dụng nó.
Sơ đồ UML
Strategy (SortStrategy)
- Khai báo một giao diện thông thường tới tất cả các giải thuật được hỗ trợ. Context sử dụng giao diện này để gọi các giải thuật được định nghĩa bởi một ConcreteStrategy.
ConcreteStrategy (QuickSort, ShellSort, MergeSort)
- Cài đặt giải thuật sử dụng giao diện Strategy Context (SortedList)
- Được cấu hình với một đối tượng ConcreteStrategy
- Duy trì một tham chiếu tới một đối tượng Stategy
- Có thể định nghĩa một giao diện để cho Strategy truy nhập dữ liệu của nó.
Các mẫu liên quan
Các đối tượng Strategy thường tạo ra các Flyweight tốt hơn.