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 і використовує його для виконання своєї роботи. Це демонструє відношення має, а не є, що робить дизайн більш гнучким і простим для змін у майбутньому.
Складність слід використовувати, коли потрібні гнучкі частини, чіткі межі та заміна поведінки під час виконання. Віддавайте перевагу наслідуванню, коли очевидна та стабільна ієрархія справжнього is-a.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат