Käyttämällä aiempia versioita luoda uusia ohjelmistoja käyttämällä käsitteitä uudelleenkäytettävyyden kutsutaan uudelleenkäytettävyyttä koodi ohjelmointi. Tietotekniikan yrityksissä koodin uudelleenkäyttöä pidetään kriittisenä tuottavuuden funktiona. Entiteettiohjelmoinnissa on ollut kaksi perustapaa määritellä nämä suhteet: periytyminen ja koostumus.
Koostumus vs perintö
Ero koostumuksen ja periytymisen välillä on se, että koostumusta käytetään luomaan luokka, jolla on "on-a"-suhde mieluummin kuin "on-a"-suhde, kuten perinnössä. Periytymisen ansiosta yhden luokan jäsenfunktiot voivat tulla toisen omaisuudeksi ilman, että niitä tarvitsee koodata suoraan luokassa.
Luokkaperintö palautetaan artikkelin koostumuksella. Koostumusta kuvataan yhden kokonaisuuden käyttämiseksi toisessa. Koska monimutkaisia luokkia on helppo rakentaa käyttämällä aiemmin julkaistuja, hyvin suunniteltuja luokkia komponentteina, objektia voidaan aina käyttää kenttänä toisen luokan sisällä. Kaikkea tätä kutsutaan koostumukseksi.
OOP:ssa perinnöllä tarkoitetaan prosessia, jossa yksi entiteetti hankkii toisen ominaisuudet. Se on yksi tehokkaimmista tavoista pakottaa koodin uudelleenkäyttö OOP:ssa. Uusi luokka voidaan muodostaa luomalla vanhempi-lapsi -suhteet nykyisten luokkien kanssa perinnön avulla. Luokat voivat periä usein käytettyjä tiloja ja käyttäytymistä joistakin muista luokista oliolaskennan ansiosta.
Koostumuksen ja periytymisen vertailutaulukko
Vertailuparametrit | Sävellys | Perintö |
Merkitys | Ilmoitamme vain tyypin, jota haluamme käyttää koostumuksessa, ja se voi tallentaa useita toteutuksia, jotka voivat vaihdella ajon aikana. | Määrittelemme omaksuman luokan (superluokan) periytymisessä, eikä sitä voida muuttaa suorituksen yhteydessä. |
Luokkien yhdistäminen | Mahdollisuus yhdistää eri luokkien toimintoja saadaan aikaan koostumuksella. | Voimme laajentaa vain yhtä luokkaa tässä tapauksessa; toisin sanoen monia luokkia ei voida laajentaa, koska Java ei salli useita perintöjä. |
Toiminnallisuus | Koostumus antaa meille mahdollisuuden testata käyttämiemme luokkien toimivuutta ilman, että meidän tarvitsee huolehtia siitä, ovatko ne vanhempi- vai lapsiluokkia. | Periytys edellyttää yläluokan käyttöä aliluokan testaamiseksi. |
Koodin uudelleenkäyttö | Jopa viimeisten luokkien koodia voidaan käyttää uudelleen koostumuksen ansiosta. | Lopullista luokkaa ei voi laajentaa perinnön kautta. |
Suhde | Se on "has-a" -tilanne. | Se on "on-a" -tilanne. |
Mikä on Koostumus?
Koostumus on yhdistämisen muoto, jossa omistus on implisiittinen. On olemassa riippuvuus, koska yksi esine on riippuvainen toisesta. Harkitse seuraavia esineitä: kouluobjekti ja luokkahuoneobjekti. Kouluobjekti vaaditaan luokkahuoneobjektin olemassaoloon. Luokkahuone vaurioituu, jos kouluesine tuhoutuu. Tämän seurauksena nämä kaksi kohdetta ovat riippuvaisia toisistaan. Sellaisenaan se on todellakin koostumus. Toisin sanoen sanomme jotain sävellykseksi, jos se ei voi olla olemassa ilman kokonaisuutta.
Toinen yhteys OOP:n antamien luokkien välillä on koostumus, joka tunnetaan myös nimellä has-a-relaatio. Jos jollakin tavalla yhden esineen ominaisuudet on sisällytettävä toisen ominaisuuksiin, suhde edellyttää sommittelua. Uuden luokan luomiseksi pääluokasta jokaisen luokan objekti on ilmoitettava nykyisen luokan jäseneksi.
Koostumus kuvataan esineen käyttöä toisen kohteen sisällä. Entiteettiä voidaan käyttää kenttänä missä tahansa luokassa säännöllisesti. Koostumuksessa he käyttävät kokonaisuutta, joka on osa luokkaa. Alkioiden koostumusta, toisin kuin luokan periytymistä, kuvaavat jatkuvasti ajon aikana entiteetit, jotka hankkivat yhteyksiä muihin objekteihin.
Mitä on perinnöllisyys?
Periytys tarkoittaa sitä, että uusi luokka käyttää olemassa olevan luokan attribuutteja ja menetelmiä. Tätä olemassa olevaa luokkaa kutsutaan pääluokiksi, superluokiksi tai perusluokiksi. Uutta luokkaa kutsutaan ali-, ala- tai johdetuksi luokaksi. Perinnön vuoksi luojan ei tarvitse edes kirjoittaa koodia alusta alkaen. Hän voi käyttää periytymistä käyttääkseen uudelleen johdetun idean attribuutteja ja menetelmiä uudessa luokassa. Seurauksena on, että periytyminen parantaa koodin uudelleenkäyttöä. Periytys voi olla luonteeltaan yksitasoista, monitasoista, hierarkkista, monimuotoista ja hybridimuotoista.
Jos haluamme rakentaa uuden luokan, mutta näyttää siltä, että siinä on jokin tarvitsemamme koodi, voimme purkaa uuden luokkamme nykyisestä. Voisimme käyttää uudelleen nykyisen luokan ominaisuuksia ja menetelmiä sen sijaan, että kirjoittaisimme ne itse. Alaluokka perii suurimman osan superluokkansa edustajista. Rakentajat eivät ole osallistujia, joten niitä ei siirretä alaluokkiin, mutta superluokan funktio Object() { [natiivikoodi] } voidaan kutsua alaluokasta.
Tärkeimmät erot koostumuksen ja periytymisen välillä
Johtopäätös
Koska monimutkaisia luokkia on helpompi rakentaa käyttämällä aiemmin kirjoitettuja, hyvin suunniteltuja luokkia, saatat joskus haluta käyttää objektia kenttänä toisessa luokassa. Siinä tulee esille kokoonpanokyky. Koska perinnön avulla voit käyttää koodia uudelleen laajentamalla luokkaa pienellä vaivalla, se on hyödyllinen työkalu luokkien välisten suhteiden luomiseen.
Kokoonpano on yleensä suositeltavampi, koska sen avulla voit käyttää objektia menettämättä sen sisäisiä tietoja, jolloin sommittelu on hyödyllistä. Vaikka periytymisellä on haittapuolensa, objektien koostumus aiheuttaa samanlaisia suorituskykyongelmia objektin muodostumisen ja tuhoutumisen kannalta.