Skip to main content

Hva er sammensetning over arv?

Sammensetning over arv er en programmeringsmetodikk som brukes i objektorienterte programmeringsspråk for å hjelpe deg med å etablere mer dynamiske og skiftende forhold mellom objekter i en applikasjon.Det grunnleggende formatet for sammensetning over arv er inkludering av en forekomst av et objekt i et annet objekt.Dette er tydelig forskjellig fra den objektorienterte arvemetoden, men kan tjene samme formål i mange modeller.Fordelene med sammensetning i forhold til arv inkluderer veldefinerte grenser mellom de komponerte objektene og innpakningsobjektene, muligheten til å endre implementeringen av et objekt uten å påvirke et helt arvehierarki og et mindre restriktivt rammeverk for innledende programutforming.Noen av komplikasjonene kan imidlertid omfatte vanskeligheter med serialisering og altfor komplekse strukturer i store, etablerte programmer.

I objektorientert programmering, er en av egenskapene som er viktig å etablere under design hvordan de forskjellige objektene forholder seg til hverandre.Arv er en sentral mekanisme i objektorientert programmering og lar ett objekt arve alle dataene og metodene til foreldrene, som det deretter kan legge til, endre eller utvide med sin egen implementering.Et eksempel på design basert på arv kan være med et program som har en hovedklasse som er definerer en bil og modellerer noen generiske attributter for alle biler.Klassen for hvert enkelt bilmerke blir deretter laget som en etterkommer av hovedklassen, men definerer spesifikk informasjon, for eksempel motorstørrelse, drivstoffkapasitet eller annen informasjon som er spesifikk for det aktuelle bilmerket.

Sammensetning uttrykkes ved å inkludere objektforekomster innenfor andre objekter.Hvis det er en hovedklasse som definerer en generisk bil, kan i stedet for å lage underklasser for spesifikke bilmerker, i stedet inneholde forekomster av andre objekter som definerer bilen mer spesifikt.Dette kan bety at hovedbilklassen kan inneholde et objekt for motortypen og en for drivstoffkapasiteten, som vil bli satt når klassen brukes til å lage en forekomst av et bestemt merke av bil.

med komposisjon over arv,Objekter som er inneholdt i hovedklassen er ikke direkte relatert til hovedklassen, noe som gir utviklere frihet til å endre hvordan individuelle objekter fungerer.Et spørsmål som sammensetning over arv kan bidra til å forhindre, er en situasjon der et arv tre kan være for dypt, noe som betyr at eventuelle endringer i en klasse i treet kan kreve endringer i treets lengde.Ikke alle objektorienterte språk har støtte for flere arv, og sammensetning over arv er en metode som kan brukes til å jobbe rundt denne begrensningen.