Peamine erinevus – koondamine vs koostis
Objektorienteeritud programmeerimine (OOP) on tarkvaraarenduse tavaline paradigma. Objekt on klassi eksemplar. Objekte pole võimalik korraga luua. Objekti loomiseks peaks olema plaan või kirjeldus. Seda plaani tuntakse klassina. Klass sisaldab omadusi ja meetodeid. Objektid luuakse klasside abil. Klass ja objekt on sarnased plaani ja majaga pärismaailmas. Ilma korraliku planeeringuta pole võimalik maja ehitada. Samamoodi kasutatakse klassi objekti loomiseks. Objekt teeb koostööd teiste objektidega. Seost tähistab kahe või enama objekti suhet, mida nimetatakse assotsiatsiooniks. Agregatsioon ja koosseis on ühenduste tüübid. Need kirjeldavad klassidevahelisi suhteid. Selles artiklis käsitletakse liitmise ja koostise erinevust. Peamine erinevus koondamise ja koostise vahel seisneb selles, et liit on kahe objekti vaheline seos, mis kirjeldab suhet "on" ja koosseis on spetsiifilisem liitmise tüüp, mis eeldab omandiõigust.
Mis on liitmine?
Kahe objekti vahelist seost näidatakse joone tõmbamisega Unified Modeling Languages (UML). Link on ühendus. UML aitab saada süsteemi visuaalset esitust. See erineb tavalistest programmeerimiskeeltest. Assotsiatsioon määratleb ka objektide paljususe. Need on üks-ühele, üks-mitmele ja paljud-mitmele. Kui klassi A üks objekt on seotud ühe klassi B objektiga, on see üks-ühele suhe. Näiteks on autor, kes kirjutab raamatut. Selles näites kirjutab üks autor raamatut.
Kui üks A-klassi objekt on seotud paljude B-klassi objektidega, on see üks-mitmele suhe. Näiteks võib osakonnas olla palju töötajaid. Kui klassi A objekt on seotud paljude B-klassi objektidega ja klassi B objekt paljude A-klassi objektidega, on tegemist seosega mitu-mitmele. Üks näide on see, et töötaja võib töötada mitme projekti kallal ja projektis võib olla mitu töötajat.
Agregeerimine on tüübiseos, mis kirjeldab veelgi objektide vahelist suhet. Agregatsioon kirjeldab, et "on suhe". Mõned näited, mis seda suhet kirjeldavad, on järgmised: õpilasel „on” õpilaspilet, sõidukil „on” mootor. Suhtega on võimalik ka suurt kogust laiendada. Mõned näited on, et pangal "on palju" pangakontosid, klassil "on palju" õpilasi. Seda saab selgitada alloleva näitega.
Joonis 01: koondamine
Vastav alt ül altoodud näitele koosneb klassiruum õpilasest või paljudest õpilastest. Paljusust kasutatakse ka objektide arvu näitamiseks. See kirjeldab, et ühes klassiruumis on mitu õpilast. Teemandi sümbol tähistab UML-i liitmist. Õpilaste objektid ei tugine klassiobjektile. Kui klassi objekt hävib, ei mõjuta see õpilaste objekte. Need objektid jäävad alles.
Mis on kompositsioon?
Kompositsioon on spetsiifilisem liitmise vorm. See kirjeldab omandiõigust. Seda saab selgitada alloleva näitega.
Joonis 02: koostis
Vastav alt ül altoodule koosneb raamatuobjekt leheküljeobjektist või lehtedest. Paljusust kasutatakse ka objektide arvu näitamiseks. See kirjeldab, et ühes klassiruumis on mitu õpilast. Esiletõstetud teemandi sümbol tähistab kompositsiooni UML-is. Kuna raamatul on lehekülg või mitu lehekülge, siis on tegemist kokkuvõttega, kuid see on täpsustatud. Kui raamatuobjekt hävib, hävivad ka leheobjektid. Leheküljeobjektid ei saa eksisteerida ilma raamatuobjektita. Seetõttu on kompositsioon spetsiifilisem koondvorm, mis eeldab omandiõigust.
Millised on liitmise ja koostise sarnasused?
- Mõlemat kasutatakse objektorienteeritud programmeerimises.
- Mõlemat kasutatakse Unified Modeling Languages (UML), et saada süsteemist visuaalne arusaam.
Mis vahe on liitmisel ja koostisel?
Koond vs koostis |
|
Agregatsioon on kahe objekti vaheline seos, mis kirjeldab seost "on". | Koostis on kõige spetsiifilisem liitmise tüüp, mis eeldab omandiõigust. |
UML-i sümbol | |
Koondamine on tähistatud teemandiga. | Kompositsiooni tähistab esiletõstetud teemant. |
Funktsionaalsus | |
Kokkuvõttes, kui omanikobjekt hävib, ei mõjuta see sisaldavat objekti. | Kompositsioonis, kui omanikobjekt hävib, mõjutab see sisaldavat objekti. |
Kokkuvõte – koondamine vs koostis
Objektorienteeritud programmeerimine on tarkvaraarenduse peamine paradigma. OOP-is modelleeritakse süsteemi objektide abil. Need objektid ei eksisteeri isoleeritult. Objektid teevad koostööd teiste objektidega. Objektide vahelist suhet nimetatakse assotsiatsiooniks. Agregatsioon ja koosseis on assotsiatsioonitüübid. Erinevus koondamise ja koostise vahel seisneb selles, et liitmine on kahe objekti vaheline seos, mis kirjeldab seost "on" ja koosseis on spetsiifilisem omandiõigust eeldav liitmise tüüp. Nii liitmine kui ka koostis aitavad mõista süsteemi käitumist.
Laadige alla PDF-versioon koondamise ja koostise kohta
Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit. Erinevus koondamise ja koostise vahel