Trong các mẫu thiết kế đầu tiên, nó dạy mẫu chiến lược bằng cách sử dụng ví dụ Vịt trong đó các lớp con khác nhau của Vịt có thể được chỉ định một hành vi cụ thể khi chạy. Theo hiểu biết của tôi, mục đích của mẫu chiến lược là thay đổi hành vi của một đối tượng trong thời gian chạy, tuy nhiên họ đang sử dụng sự kế thừa của Duck để thay đổi hành vi của nhiều loại Vịt.
Sự liên quan?
Là sự kế thừa bối cảnh của Vịt không liên quan đến mẫu chiến lược hay là các loại Vịt khác nhau và cũng thay đổi hành vi của chúng là lý do chính đáng để sử dụng mẫu chiến lược? Các tình huống mà bạn cần thay đổi cả hai có phải là lý do chính đáng để sử dụng mô hình chiến lược không? Tại sao họ lại bao gồm điều này như ví dụ mẫu chiến lược?
Một ví dụ đơn giản
Tôi có thể đơn giản hóa ví dụ này bằng cách chỉ có một lớp Vịt (không có lớp dẫn xuất) không? Sau đó, khi thực hiện một đối tượng vịt, nó có thể được chỉ định các hành vi khác nhau dựa trên các trường hợp nhất định không phụ thuộc vào loại đối tượng của chính nó. Ví dụ: Thay đổi FlyBehavior dựa trên thời tiết hoặc thay đổi QuackBehavior dựa trên thời gian trong ngày hoặc mức độ đói của một con vịt. Tôi nhận ra điều này sẽ giải quyết một vấn đề khác với vấn đề trong cuốn sách, nhưng điều tôi đang tìm kiếm là một ví dụ mẫu chiến lược có liên quan để quay trở lại.
Ví dụ của tôi ở trên có tạo thành mô hình chiến lược không?
Biên tập:
Tôi đã thành công trong việc tìm ra 2 ví dụ mẫu chiến lược đơn giản hơn, tuân thủ chặt chẽ hơn việc chỉ là các mẫu chiến lược mà không cần kế thừa ngữ cảnh: Hunter.java và solver.py .