Skip to main content

Vad är komposition över arv?

Komposition över arv är en programmeringsmetodik som används på objektorienterade programmeringsspråk för att skapa mer dynamiska och föränderliga förhållanden mellan objekt i en applikation.Det grundläggande formatet för komposition över arv är att inkludera ett exempel på ett objekt i ett annat objekt.Detta skiljer sig tydligt från den objektorienterade metoden för arv men kan tjäna samma syfte i många modeller.Fördelarna med komposition över arv inkluderar väl definierade gränser mellan de sammansatta föremålen och omslagsobjekten, förmågan att ändra implementeringen av ett objekt utan att påverka en hel arvhierarki och en mindre restriktiv ram för initial programdesign.Vissa av komplikationerna kan emellertid inkludera svårigheter att serialisera och alltför komplexa strukturer i stora, etablerade program.

I objektorienterad programmering, en av de egenskaper som är viktigt att fastställa under design är hur de olika föremålen relaterar till varandra.Arv är en central mekanism i objektorienterad programmering och gör det möjligt för ett objekt att ärva alla data och metoder för dess förälder, som den sedan kan lägga till, ändra eller förlänga med sin egen implementering.Ett exempel på design baserad på arv kan vara med ett program som har en huvudklass som definierar en bil och modellerar vissa generiska attribut för alla bilar.Klassen för varje enskilt varumärke görs sedan som en ättling till huvudklassen men definierar specifik information, till exempel motorstorlek, bränslekapacitet eller annan information som är specifik för det specifika varumärket.

Komposition uttrycks genom att inkludera objektfall inom andra objekt.Om det finns en huvudklass som definierar en generisk bil, i stället för att skapa underklasser för specifika bilmärken, kan huvudklassen istället innehålla fall av andra föremål som definierar bilen mer specifikt.Detta kan innebära att huvudbilsklassen kan innehålla ett objekt för motortypen och ett för bränslekapaciteten, som skulle ställas in när klassen används för att skapa en instans av ett specifikt varumärke.

Med komposition över arv,Objekt som finns i huvudklassen är inte direkt relaterade till huvudklassen, vilket ger utvecklarna friheten att ändra hur enskilda objekt fungerar.En fråga som komposition över arv kan hjälpa till att förhindra är en situation där ett arvträd kan vara alltför djupt, vilket innebär att alla modifieringar av en klass i trädet kan kräva förändringar i trädets längd.Inte alla objektorienterade språk har stöd för flera arv, och komposition över arv är en metod som kan användas för att arbeta runt denna begränsning.