5
戦略パターンと依存性注入を使用して継承を完全に置き換えることはできますか?
例えば: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Duckクラスにはすべての動作(抽象)が含まれているため、新しいクラスMallardDuck(拡張Duck)を作成する必要はないようです。 参照:ヘッドファーストデザインパターン、第1章。