Mitä on sommittelu yli perinnöllisyyden?

Koostumus perinnän yli on ohjelmointimenetelmä, jota käytetään olio -ohjelmointikielissä, jotta voidaan luoda dynaamisempia ja muuttuvampia suhteita sovelluksen objektien välille. Perintökoostumuksen perusmuoto on objektin esiintymän sisällyttäminen toisen objektin sisälle. Tämä eroaa selvästi olio -perintomenetelmästä, mutta voi palvella samaa tarkoitusta monissa malleissa. Koostumuksen etuja perintöön nähden ovat hyvin määritellyt rajat yhdistettyjen objektien ja kääreobjektien välillä, mahdollisuus muuttaa objektin toteutusta vaikuttamatta koko perintöhierarkiaan ja vähemmän rajoittavat puitteet ohjelman alkuperäiselle suunnittelulle. Jotkin komplikaatiot voivat kuitenkin sisältää vaikeuksia sarjoittamisessa ja liian monimutkaisia ​​rakenteita suurissa, vakiintuneissa ohjelmissa.

Objektisuuntautuneessa ohjelmoinnissa yksi ominaisuuksista, jotka on tärkeää selvittää suunnittelun aikana, on se, miten eri objektit liittyvät toisiinsa. Perintö on olio -ohjelmoinnin keskeinen mekanismi ja sallii yhden objektin periä kaikki emoyhtiönsä tiedot ja menetelmät, joita se voi sitten lisätä, muokata tai laajentaa omalla toteutuksellaan. Esimerkki perintöön perustuvasta suunnittelusta voisi olla ohjelmalla, jolla on yksi pääluokka, joka määrittelee auton ja mallintaa joitain yleisiä ominaisuuksia kaikista autoista. Kunkin yksittäisen automerkin luokka tehdään sitten pääluokan jälkeläisenä, mutta se määrittelee erityisiä tietoja, kuten moottorin koon, polttoainetilavuuden tai muita kyseiselle automerkille ominaisia ​​tietoja.

Koostumus ilmaistaan ​​sisällyttämällä objektin esiintymät muihin objekteihin. Jos on olemassa pääluokka, joka määrittelee geneerisen auton, alaluokkien luomisen sijaan tietyille automerkeille pääluokka voisi sen sijaan sisältää muita esineitä, jotka määrittelevät auton tarkemmin. Tämä voi tarkoittaa sitä, että pääautoluokka voi sisältää objektin moottorityypille ja yhden polttoainetilavuudelle, joka asetetaan, kun luokkaa käytetään tietyn automerkin esiintymän luomiseen.

Koska kokoonpano on perinnöllinen, pääluokkaan kuuluvat objektit eivät liity suoraan pääluokkaan, mikä antaa kehittäjille vapauden muuttaa yksittäisten objektien toimintaa. Ongelma, jonka periminen yli periytymisen voi auttaa estämään, on tilanne, jossa perintöpuu voi olla liian syvä, mikä tarkoittaa, että kaikki muutokset puun luokkaan voivat vaatia muutoksia puun pituuteen. Kaikilla objektiorientoiduilla kielillä ei ole tukea useille perinnöille, ja perintötekijöiden koostumus on menetelmä, jolla voidaan kiertää tämä rajoitus.