Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Introduction to Composition | Секція
Об'єктно-орієнтоване програмування на Python

bookIntroduction to Composition

Свайпніть щоб показати меню

Композиція означає відношення "має", коли клас містить екземпляр іншого класу замість наслідування від нього. Наприклад, Car має Engine. Це відрізняється від наслідування, яке моделює відношення "є", наприклад, Truck є Vehicle.

1234567891011121314151617
class 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())
copy

Car не наслідує від Engine. Натомість він містить об'єкт Engine і використовує його для виконання своєї роботи. Це демонструє відношення "має", а не "є", що робить дизайн більш гнучким і легким для змін у майбутньому.

Note
Примітка

Слід використовувати композицію, коли потрібні гнучкі частини, чіткі межі та заміна поведінки під час виконання. Віддавайте перевагу наслідуванню, якщо ієрархія справжнього "є-є" очевидна та стабільна.

question mark

Яка основна перевага використання композиції?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 15

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 15
some-alt