5
Pouvons-nous remplacer complètement l'héritage en utilisant un modèle de stratégie et une injection de dépendance?
Par exemple: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Comme la classe Duck contient tous les comportements (abstraits), la création d'une nouvelle classe MallardDuck(qui s'étend Duck) ne semble pas nécessaire. Référence: Head First Design Pattern, Chapitre 1.