Compositie versus overerving
Geef voor gedeeld gedrag de voorkeur aan compositie
Compositie versus overerving is een gratis Angular Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Angular Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Angular Academy bevat in totaal 4 lessen.
Twee strategieën voor hergebruik
Om gedrag tussen componenten te delen, kun je overerving gebruiken (een basisklasse uitbreiden) of compositie (kleinere onderdelen combineren). De compositie-API van Angular maakt compositie de voorkeurskeuze.
Samenvatting van overerving
Bij overerving breidt een component een basiscomponent of directive uit en hergebruikt het diens invoeren, uitvoeren en logica.
export class FancyButton extends BaseButton {
// inherits BaseButton members
}Beperkingen van overerving
Een klasse kan maar één basis uitbreiden. Diepe hiërarchieën worden star en je erft alles, ook onderdelen die je niet wilt.
Het diamantprobleem
Meerdere gedragingen combineren via overerving is onmogelijk zonder omslachtige ketens. Compositie omzeilt dit door veel directives onafhankelijk toe te passen.
Samenvatting van compositie
Bij compositie blijft een component gericht en haalt het gedragingen binnen via hostDirectives, waarbij je er zoveel kunt combineren als nodig is.
hostDirectives: [ElevateDirective, RippleDirective, FocusTrapDirective]Kies bij voorkeur compositie
De richtlijn "kies compositie boven overerving" geldt sterk voor Angular: compositie is flexibel, uitbreidbaar en voorkomt kwetsbare basisklassen.
Wanneer overerving nog steeds past
Overerving kan geschikt zijn voor één stabiele basis die door nauw verwante varianten wordt gedeeld, bijvoorbeeld een basis voor formuliervelden die varianten verder specialiseren. Houd hiërarchieën ondiep.
Beide combineren
Je kunt beide benaderingen combineren: breid een dunne basis uit voor gedeelde structuur en combineer gedragingen voor doorsnijdende aandachtspunten.
Inkapseling
Compositie houdt de interne werking van elk gedrag privé en maakt alleen geselecteerde invoeren en uitvoeren beschikbaar, terwijl overerving de volledige API van de basis blootlegt.
Hervormen richting compositie
Als een basisklasse ongerelateerde verantwoordelijkheden opstapelt, splits je elke verantwoordelijkheid op in een directive en combineer je ze. Het resultaat is modulairder en beter te testen.
Keuzehulp
Heb je meerdere onafhankelijke gedragingen nodig? Combineer ze. Heb je één gedeelde structurele basis nodig? Dan kan een ondiepe basis volstaan. Kies standaard voor compositie vanwege de flexibiliteit.
Korte controle
Test je begrip van compositie tegenover overerving.
Samenvatting
Je hebt geleerd dat compositie (gerichte gedragingen combineren via hostDirectives) flexibeler is dan overerving (één basisklasse), kwetsbare hiërarchieën voorkomt en de standaardkeuze hoort te zijn. Gebruik ondiepe overerving alleen voor gedeelde structuur.
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 38
- Lessen
- 144
Veelgestelde vragen
Is de les “Compositie versus overerving” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Angular Academy, waaronder “Compositie versus overerving”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Angular Academy bevat in totaal 4 lessen.
Wat leer ik in “Compositie versus overerving”?
Geef voor gedeeld gedrag de voorkeur aan compositie Je oefent met Angular Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Angular Academy te beginnen?
Ervaring vooraf is niet nodig. Angular Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Compositie versus overerving”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Angular Academy?
Ja. Elke les over Angular Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- De eigenschap hostDirectives
- Inputs en outputs beschikbaar maken
- Herbruikbaar gedrag bouwen
- Compositie versus overerving