Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Introduction to Composition | Komposition
Objektorienterad Programmering i Python

bookIntroduction to Composition

Svep för att visa menyn

Komposition representerar en har-en-relation, där en klass innehåller en instans av en annan klass istället för att ärva från den. Till exempel, en Bil har en Motor. Detta skiljer sig från arv, som modellerar en är-en-relation, såsom en Lastbil är ett Fordon.

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 ärver inte från Engine. Istället innehåller den ett Engine-objekt och använder det för att utföra sitt arbete. Detta visar en har-en-relation, inte är-en, vilket gör designen mer flexibel och lättare att ändra senare.

Note
Notering

Komposition bör användas när du behöver flexibla delar, tydliga gränser och utbytbarhet av beteende under körning. Föredra arv när en tydlig är-en-hierarki är uppenbar och stabil.

question mark

Vad är den främsta fördelen med att använda komposition?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 3. Kapitel 1
some-alt