Mẫu thiết kế chiến lược thường được coi là sự thay thế cho các chức năng hạng nhất trong các ngôn ngữ thiếu chúng.
Vì vậy, ví dụ nói rằng bạn muốn truyền chức năng vào một đối tượng. Trong Java, bạn phải truyền vào đối tượng một đối tượng khác gói gọn hành vi mong muốn. Trong một ngôn ngữ như Ruby, bạn chỉ cần truyền chính chức năng đó dưới dạng một chức năng ẩn danh.
Tuy nhiên tôi đã suy nghĩ về nó và quyết định rằng có lẽ Chiến lược cung cấp nhiều hơn một chức năng ẩn danh đơn giản.
Điều này là do một đối tượng có thể giữ trạng thái tồn tại độc lập với thời kỳ khi phương thức của nó chạy. Tuy nhiên, một hàm ẩn danh tự nó chỉ có thể giữ trạng thái ngừng tồn tại vào thời điểm hàm kết thúc thực thi.
Trong một ngôn ngữ hướng đối tượng hỗ trợ các chức năng hạng nhất, mẫu chiến lược có bất kỳ lợi thế nào so với việc sử dụng các chức năng không?