Composition vs inheritance — когда что использовать?

Senior
313 просмотров
AFK Offer AI

Inheritance — "is-a": Dog is an Animal. Composition — "has-a": Car has an Engine. В Python предпочитают composition: класс хранит ссылки на другие объекты и делегирует им работу. Inheritance создаёт жёсткую связь, трудно менять. Composition — гибче, легко заменить компонент. Наследование уместно: когда реально есть иерархия типов, для ABC/Protocol, для framework hooks (Django views). Composition уместна: для бизнес-логики, когда нужна гибкость, когда компоненты переиспользуются в разных контекстах. "Prefer composition over inheritance" — классическое правило.

Следующий вопрос

Как сравнить multiprocessing vs threading по производительности?