Introduksjon til komposisjon
Sveip for å vise menyen
Komposisjon representerer et har-en-relasjon, der en klasse inneholder en instans av en annen klasse i stedet for å arve fra den. For eksempel, en Car har en Engine. Dette er forskjellig fra arv, som modellerer en 'er-en-relasjon', slik som en Truck er et 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 arver ikke fra Engine. I stedet inneholder den et Engine-objekt og bruker det til å utføre sitt arbeid. Dette viser en har-en-relasjon, ikke er-en, noe som gjør designet mer fleksibelt og lettere å endre senere.
Komposisjon bør brukes når du trenger fleksible deler, tydelige grenser og utskifting av oppførsel under kjøring. Foretrekk arv når en ekte er-en-hierarki er åpenbar og stabil.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår