Introduction to Composition
Pyyhkäise näyttääksesi valikon
Kokoonpano (composition) edustaa has-a-suhdetta, jossa luokka sisältää toisen luokan olion sen sijaan, että perisi siitä. Esimerkiksi Autolla on moottori. Tämä eroaa periytymisestä, joka mallintaa on-a-suhdetta, kuten Kuorma-auto on ajoneuvo.
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 ei peri Engine-luokasta. Sen sijaan se sisältää Engine-olion ja käyttää sitä toiminnassaan. Tämä osoittaa has-a-suhteen, ei on-a-suhdetta, mikä tekee suunnittelusta joustavamman ja helpommin muokattavan myöhemmin.
Käytä koostamista, kun tarvitset joustavia osia, selkeitä rajoja ja käytöksen vaihtamista ajonaikaisesti. Suosi perintää, kun todellinen on-osa -hierarkia on ilmeinen ja vakaa.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme