Dalam Head First Design Patterns, ia mengajarkan pola strategi dengan menggunakan contoh Bebek di mana subclass Bebek yang berbeda dapat ditugaskan perilaku tertentu saat runtime. Dari pemahaman saya tujuan dari pola strategi adalah untuk mengubah perilaku objek tunggal saat runtime, namun mereka menggunakan warisan Bebek untuk mengubah perilaku berbagai jenis Bebek.
Relevansi?
Apakah konteks pewarisan Bebek tidak relevan dengan pola strategi atau apakah beragam jenis Bebek dan juga memvariasikan perilaku mereka merupakan alasan yang baik untuk menggunakan pola strategi? Apakah situasi di mana Anda perlu memvariasikan keduanya merupakan alasan yang baik untuk menggunakan pola strategi? Mengapa mereka memasukkan ini sebagai contoh pola strategi?
Contoh Sederhana
Bisakah saya lebih menyederhanakan contoh ini dengan hanya memiliki kelas Bebek (tidak ada kelas turunan)? Kemudian ketika menerapkan satu objek bebek itu dapat ditugaskan perilaku yang berbeda berdasarkan keadaan tertentu yang tidak tergantung pada jenis objeknya sendiri. Misalnya: Perubahan FlyBehavior berdasarkan cuaca atau perubahan QuackBehavior berdasarkan waktu hari atau seberapa lapar bebek. Saya menyadari ini akan memecahkan masalah yang berbeda dari yang ada di buku ini, tetapi apa yang saya cari adalah contoh pola strategi yang relevan untuk kembali.
Apakah contoh saya di atas merupakan pola strategi juga?
Edit:
Saya berhasil menemukan 2 contoh pola strategi sederhana yang lebih ketat menjadi pola strategi tanpa pewarisan konteks: Hunter.java dan solver.py .