Introduction to Composition
Свайпніть щоб показати меню
Композиція означає відношення "має", коли клас містить екземпляр іншого класу замість наслідування від нього. Наприклад, Car має Engine. Це відрізняється від наслідування, яке моделює відношення "є", наприклад, Truck є Vehicle.
1234567891011121314151617class Engine: def start(self): return "Engine started" class Car: def __init__(self, brand, engine): self.brand = brand self.engine = engine # Car HAS an Engine def drive(self): return f"{self.brand}: {self.engine.start()}" engine = Engine() car = Car("Toyota", engine) print(car.drive())
Car не наслідує від Engine. Натомість він містить об'єкт Engine і використовує його для виконання своєї роботи. Це демонструє відношення "має", а не "є", що робить дизайн більш гнучким і легким для змін у майбутньому.
Слід використовувати композицію, коли потрібні гнучкі частини, чіткі межі та заміна поведінки під час виконання. Віддавайте перевагу наслідуванню, якщо ієрархія справжнього "є-є" очевидна та стабільна.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат