Avainero – yhdistäminen vs. koostumus
Object-Oriented Programming (OOP) on yleinen paradigma ohjelmistokehityksessä. Objekti on luokan esiintymä. Objekteja ei voi luoda kerralla. Objektin luomista varten tulee olla suunnitelma tai kuvaus. Tuo suunnitelma tunnetaan luokkana. Luokka sisältää ominaisuuksia ja menetelmiä. Objektit luodaan luokkien avulla. Luokka ja kohde ovat samanlaisia kuin suunnitelma ja talo todellisessa maailmassa. Taloa ei voi rakentaa ilman kunnollista suunnitelmaa. Samoin luokkaa käytetään objektin luomiseen. Objekti toimii yhteistyössä muiden objektien kanssa. Linkki edustaa kahden tai useamman objektin suhdetta kutsutaan "assosiaatioksi". Aggregaatio ja koostumus ovat yhdistystyyppejä. Ne kuvaavat luokkien välistä suhdetta. Tässä artikkelissa käsitellään eroa yhdistämisen ja koostumuksen välillä. Keskeinen ero yhdistämisen ja koostumuksen välillä on se, että yhdistäminen on kahden objektin välinen yhteys, joka kuvaa "on"-suhdetta, ja koostumus on tarkempi yhdistämistyyppi, joka viittaa omistukseen.
Mitä yhdistäminen on?
Kahden objektin välinen suhde näytetään piirtämällä viiva Unified Modeling Language (UML) -kielellä. Linkki on yhdistys. UML auttaa saamaan visuaalisen esityksen järjestelmästä. Se on erilainen kuin tavalliset ohjelmointikielet. Assosiaatio määrittelee myös objektien määrän. Ne ovat yksi-yhteen, yksi-monelle ja monta-monelle. Kun yksittäinen luokan A objekti liittyy yhteen luokan B objektiin, se on yksi-yhteen-suhde. Esimerkkinä kirjailija, joka kirjoittaa kirjan. Tässä esimerkissä yksi kirjoittaja kirjoittaa kirjaa.
Kun yksi luokan A objekti liittyy useisiin luokan B objekteihin, se on yksi-moneen-suhde. Esimerkkinä on, että osastolla voi olla useita työntekijöitä. Kun luokan A objekti liittyy moniin luokan B olioihin ja luokan B objekti moniin luokan A objekteihin, kyseessä on monesta moneen -assosiaatio. Yksi esimerkki on, että työntekijä voi työskennellä useissa projekteissa ja projektissa voi olla useita työntekijöitä.
Aggregointi on tyyppiassosiaatio, joka kuvaa tarkemmin objektien välistä suhdetta. Aggregaatio kuvaa "on" suhdetta. Joitakin suhdetta kuvaavia esimerkkejä ovat: opiskelijalla "on" opiskelijakortti, ajoneuvossa "on" moottori. On myös mahdollista laajentaa suurta määrää suhteella. Joitakin esimerkkejä ovat: pankilla "on monta" pankkitiliä, luokassa "on monta" oppilasta. Se voidaan selittää alla olevan esimerkin avulla.
Kuva 01: Yhdistelmä
Yllä olevan esimerkin mukaan luokkahuone koostuu opiskelijasta tai useista oppilaista. Monikertaisuutta käytetään myös osoittamaan objektien lukumäärää. Se kuvaa, että yhdessä luokkahuoneessa on useita oppilaita. Timantin symboli edustaa aggregaatiota UML:ssä. Opiskelijaobjektit eivät ole riippuvaisia luokan objektista. Jos luokan objekti tuhoutuu, se ei vaikuta oppilasobjekteihin. Nämä objektit ovat edelleen olemassa.
Mikä on sävellys?
Sävellys on tarkempi yhdistämismuoto. Se kuvaa omistajuutta. Se voidaan selittää alla olevan esimerkin avulla.
Kuva 02: Koostumus
Yllä olevan mukaan kirjaobjekti koostuu sivuobjektista tai sivuista. Monikertaisuutta käytetään myös osoittamaan objektien lukumäärää. Se kuvaa, että yhdessä luokkahuoneessa on useita oppilaita. Korostettu timantin symboli edustaa koostumusta UML-muodossa. Koska kirjassa on sivu tai useita sivuja, se on yhdistelmä, mutta se on tarkempi. Jos kirjaobjekti tuhoutuu, myös sivuobjektit tuhoutuvat. Sivuobjekteja ei voi olla olemassa ilman kirjaobjektia. Siksi kokoonpano on täsmällisempi koosteen muoto, joka viittaa omistukseen.
Mitä yhtäläisyyksiä yhdistämisellä ja koostumuksella on?
- Molempia käytetään olioohjelmoinnissa.
- Molempia käytetään Unified Modeling Language (UML) -kielessä, jotta saadaan visuaalinen käsitys järjestelmästä.
Mitä eroa on yhdistämisellä ja koostumuksella?
Yhdistäminen vs. koostumus |
|
Aggregaatio on kahden objektin välinen assosiaatio, joka kuvaa "on"-suhdetta. | Sävellys on tarkin aggregaatiotyyppi, joka viittaa omistukseen. |
UML-symboli | |
Aggregaatio on merkitty timantilla. | Koostumus on merkitty korostetulla timantilla. |
Toiminnot | |
Yhdistettynä, jos omistava kohde tuhoutuu, se ei vaikuta sisältävään objektiin. | Jos omistusobjekti tuhoutuu koostumuksessa, se vaikuttaa sisältävään objektiin. |
Yhteenveto – yhdistäminen vs. koostumus
Objektiohjattu ohjelmointi on ohjelmistokehityksen tärkeä paradigma. OOP:ssa järjestelmä mallinnetaan objektien avulla. Näitä esineitä ei ole olemassa erillään. Objektit toimivat yhteistyössä muiden objektien kanssa. Objektien välistä suhdetta kutsutaan assosiaatioksi. Aggregaatio ja koostumus ovat yhdistystyyppejä. Ero yhdistämisen ja koostumuksen välillä on se, että yhdistäminen on kahden objektin välinen yhteys, joka kuvaa "on"-suhdetta, ja koostumus on tarkempi yhdistämistyyppi, joka edellyttää omistajuutta. Aggregointi ja koostumus auttavat ymmärtämään järjestelmän toimintaa.
Lataa PDF-versio yhdistämisestä vs. koostumuksesta
Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä Ero yhdistämisen ja koostumuksen välillä