Introduction to Composition
Stryg for at vise menuen
Komposition repræsenterer et har-en-relation, hvor en klasse indeholder en instans af en anden klasse i stedet for at arve fra den. For eksempel, en Bil har en Motor. Dette adskiller sig fra arv, som modellerer en 'er-en-relation', såsom en Lastbil er et Køretøj.
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 arver ikke fra Engine. I stedet indeholder den et Engine-objekt og bruger det til at udføre sit arbejde. Dette viser en har-en relation, ikke er-en, hvilket gør designet mere fleksibelt og lettere at ændre senere.
Sammensætning bør anvendes, når der er behov for fleksible dele, klare grænser og udskiftning af adfærd under kørsel. Foretræk arv, når et ægte er-en hierarki er tydeligt og stabilt.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat