5
我们可以使用策略模式和依赖注入完全取代继承吗?
例如: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) 由于Duck类包含所有行为(抽象),因此似乎不需要创建新类MallardDuck(扩展了Duck)。 参考:Head First设计模式,第1章。