5
Chúng ta có thể thay thế hoàn toàn kế thừa bằng cách sử dụng mô hình chiến lược và tiêm phụ thuộc không?
Ví dụ: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Vì lớp Duck chứa tất cả các hành vi (trừu tượng), việc tạo một lớp mới MallardDuck(mở rộng Duck) dường như không bắt buộc. Tham khảo: Mẫu thiết kế …