Agregeerimine on seos kahe objekti vahel, mis kirjeldab "on-a" suhet. Kompositsioon on spetsiifilisem liitmise tüüp, mis eeldab omandiõigust. võtme erinevus liitmise ja kompositsiooni vahel Java-s on see, kui sisalduv objekt saab eksisteerida ilma seda omavat objekti eksisteerimata, on see agregatsioon ja kui sisalduv objekt ei saa eksisteerida ilma seda omava objekti olemasoluta, on see kompositsioon.
Objektorienteeritud programmeerimine (OOP) on tarkvara arendamise peamine paradigma. Seda kasutatakse tarkvara modelleerimiseks objektide abil. Objektid luuakse klasside abil. Klass koosneb omadustest ja meetoditest. Tarkvaras on mitu objekti. Iga objekt teeb üksteisega koostööd sõnumi edastamise kaudu. Kahe objekti suhet tuntakse assotsiatsioonina. Nii liitmine kui ka koosseis on kahte tüüpi seosed. Suhe „has-a” kirjeldab, et üks objekt saab kasutada teist objekti. Liitmist ja koostist saab rakendada OOP-toetavates keeltes. Kui sisalduv objekt võib eksisteerida ka ilma seda omavat objekti eksisteerimata, on nende kahe objekti vaheline seos liitmine. Kui sisalduv objekt ei saa eksisteerida ilma seda omavat objekti eksisteerimata, on nende kahe objekti vaheline seos kompositsioon.
1. Ülevaade ja peamised erinevused
2. Mis on koondamine Java-s
3. Mis on Java kompositsioon?
4. Javas koondamise ja kompositsiooni sarnasused
5. Kõrvuti võrdlus - koondamine vs kompositsioon Java-s tabelina
6. Kokkuvõte
Agregeerimine on teatud tüüpi ühendus. Kui klassil on olemi viide, nimetatakse seda liitmiseks. Koondumine tähistab suhet. Üliõpilasobjektil võivad olla omadused, näiteks õpilase_nimi, nimi, aadress. Sellel objektil võib olla ka mõni teine objekt, mida nimetatakse aadressiks koos oma andmetega, näiteks linn, osariik, riik. Selles olukorras on õpilasel olemi viiteaadress. See on "on-a" suhe.
Joonis 01: märkide klass
Joonis 02: Agregeerimise kirjeldamise põhiprogramm
Ülaltoodud programmi kohaselt koosnevad klassi märgid kolmest omadusest, mis on matemaatika, inglise keele ja teaduse märgid. Õpilasel on Marksi objekt. Sellel on oma omadused, mis on matemaatika, inglise keele ja teaduse märgid. Põhimeetodi korral luuakse Marks objekt ja määratakse tähiste väärtused. Õpilasobjekt, mis on s1, saab kasutada objekti, mis on m1. Seetõttu on õpilasel ja Marksil suhe "olemas". Objekt Marks võib eksisteerida ka ilma õpilasobjektita. Seetõttu on see kokkuvõte.
Kompositsioon on teatud tüüpi assotsiatsioon. See on konkreetne liitmise vorm, mis eeldab omandiõigust. Oletame, et on kaks klassi, mida nimetatakse klassiks A ja B. Kui klassi B objekt ei saa eksisteerida, kui klassi A objekt hävitatakse, on see kompositsioon. Raamat koosneb paljudest lehekülgedest. Kui raamat hävitatakse, hävitatakse ka lehed. Leheobjektid ei saa eksisteerida ilma raamatuobjektita. Vaadake allolevat programmi.
Joonis 03: klassiruum
Joonis 04: kooliklass
Joonis 05: Põhiprogramm kompositsiooni kirjeldamiseks
Ülaltoodud programmi kohaselt on Klassiruumil kaks omadust, mis on nimi ja numOfStudents. Kool on klassiruumi objektide kollektsioon. Põhimeetodi korral luuakse kaks Klassiruumi objekti. Need lisatakse klassiruumidesse. Need “klassiruumid” antakse kooli objektile. Lõpuks trükitakse klassiruumi nimi ja õpilaste arv iteratsiooni abil kogu kaudu. Kui kooliobjekt hävitatakse, hävitatakse ka klassiruumiobjektid. See on näide kompositsioonist. See sisaldab ka suhet ja tähendab ka omandilist kuuluvust.
Koondamine vs kompositsioon Java-s | |
Agregeerimine on seos kahe objekti vahel, mis kirjeldab suhet "on". | Koosseis on spetsiifilisem liitmise tüüp, mis eeldab omandiõigust. |
Kasutamine | |
Agregeerimist kasutatakse siis, kui üks objekt kasutab teist objekti. | Kompositsiooni kasutatakse juhul, kui üks objekt omab teist objekti. |
Mõju objektidele | |
Kokkuvõttes ei mõjuta omandiobjekti hävitamine sisaldavat objekti. | Kompositsioonis mõjutab omandiobjekti hävitamine sisaldava objekti. |
Agregeerimine ja kompositsioon on OOP-s kaks mõistet. Suhe „has-a” kirjeldab, et üks objekt saab kasutada teist objekti. Agregeerimine on seos kahe objekti vahel, mis kirjeldab "on-a" suhet. Koosseis on spetsiifilisem liitmise tüüp, mis eeldab omandiõigust. Javas on liitmise ja kompositsiooni erinevus selles, et kui sisalduv objekt võib eksisteerida ilma seda omavat objekti eksisteerimata, on see liitmine ja kui sisalduv objekt ei saa eksisteerida ilma seda omava objekti olemasoluta, on see kompositsioon.
1. „Seostamine, koosseis ja koondamine Java-s”. GeeksforGeeks, 8. veebruar 2018. Saadaval siin
2. “Koondamine Java-s - Javatpoint.” Java punkt. Saadaval siin