5
Bisakah kita sepenuhnya mengganti warisan menggunakan pola strategi dan injeksi ketergantungan?
Sebagai contoh: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Karena kelas Bebek berisi semua perilaku (abstrak), membuat kelas baru MallardDuck(yang meluas Duck) tampaknya tidak diperlukan. Referensi: Pola Desain Kepala Pertama, Bab 1.