Композиция вместо наследования: гибкая сборка объектов
Коротко: Вместо совместного использования поведения через глубокие деревья наследования объекты собираются из небольших блоков; это гибче, проще тестируется и позволяет избежать жёстких иерархий.
Подробнее: Наследование выражает «является» (собака — это животное), композиция — «имеет» или «использует» (у автомобиля есть двигатель). Известное правило проектирования: предпочитайте композицию наследованию.
Подробности
Проблема наследования
- **Жёсткая связанность…
См. также: полиморфизм, принципы SOLID, паттерн «Стратегия», внедрение зависимостей, абстрактный класс или интерфейс