Objektile orienteeritud programmeerimine on levinud paradigma, mida kasutatakse tarkvaraarenduses. Objektiks on klasside klass. Objektid teevad omavahel koostööd lingide kaudu. Viited on füüsiline ja kontseptuaalne ühendus objektide vahel. Sarnast struktuuri ja semantikat omavate linkide kogumit kirjeldatakse kui assotsiatsiooni .
Võrdluskaart
Võrdluse alus | Koondamine | Koostis |
---|---|---|
Põhiline | Kokkuvõttes eksponeeritakse suhe, kus laps võib olla vanemast sõltumatult olemas. | Koostises ei saa eksisteerida vanematest sõltumatult. |
Suhte tüüp | "on" | "osa" |
Assotsiatsiooni tüüp | Nõrk ühendus | Tugev ühendus |
UML-i sümbol | Esindatud õõnsate teemantidega kogumisklassi kõrval. | Esindatud tahke teemant kogumisklassi kõrval. |
Funktsioon | Montaaži kustutamine ei mõjuta selle osi. | Kui omanikuklassi objekt on kustutatud, võib see oluliselt mõjutada klassiobjekti. |
Agregatsiooni määratlus
Agregeerimist võib defineerida kui seost kokkupanekuklassiga põhiklassi. Kahe objekti vahelist suhet saab esindada joonesegmendi joonistamisega UMLis (Unified Modeling Language).
Näiteks auto koosneb ratastest, mootorist, käigukastist, roolimisest, põhiosast jne. Auto on kokkupanek ja teised osad on selle osad. Auto ratastele on üks agregatsioon, auto mootoritele on veel üks agregatsioon ja nii edasi. Iga üksikpaaristamine on määratletud nii, et see määraks iga koostise osa mitmekesisuse, kuna tulemuseks võib olla ka objektide arv.
Agregatsioon on assotsiatsiooni tüüp, mis kirjeldab objektide vahelist “omab” tüüpi seost. Näiteks on autol „käigukast” ja auto on mootor . Üks-mitmele suhe on näiteks auto, millel on palju rattaid .
Koostise määratlus
Koostis on ka ühingu liik, kuid piiravam vorm. Seda on UMLis esindatud väikese kindla teemandiga, mis on komplekti klassi kõrval.
Seega tähistab koosseis omandiõigust kogu selle koostisosale. See suurendaks lõpuks programmeerimise mugavust. Koostis võib vallandada koostisobjekti kustutamise kogumikuobjekti kustutamisega.
Kompositsioon kirjeldab suhet „osa” . Näiteks on leht puude osa, kui puu hävitatakse, siis tuleb lehed hävitada.
Koondumise ja koosseisu peamised erinevused
- Agregatsioon näitab suhet, kus laps ja emaettevõtted võivad eksisteerida iseseisvalt. Seoses koosseisuga sõltub lapsüksus vanemast.
- Kokkuvõttes eksisteerib “omab” suhet, samas kui koosseisus on kokkupanemise ja koostis-klassi objektide vahel „seos”.
- Agregatsioon on nõrk seos, samas kui kompositsioon on tugev seos, sest sellel on rohkem piiranguid.
- UML-i disainis kirjeldatakse koondamist õõnsa teemantiga. Vastupidi, kompositsiooni kujutab tahke teemant.
Järeldus
Kokkuvõttes on koostisosadel iseseisev olemasolu ja neid saab jagada või ümber paigutada agregaatidele või selle koosseisule. Teisest küljest kuulub koostisosa koosseisus täpselt ühele koostule või agregaadile. Lisaks luuakse osa siis, kui agregaat on moodustunud ja osa hävitatakse, kui agregaat hävitatakse.