Pagrindinis skirtumas - apibendrinimas ir sudėtis
Į objektą orientuotas programavimas (OOP) yra įprasta programinės įrangos kūrimo paradigma. Objektas yra klasės egzempliorius. Vienu metu negalima kurti objektų. Objektui sukurti turėtų būti projektas arba aprašas. Tas projektas žinomas kaip klasė. Klasėje yra savybės ir metodai. Objektai kuriami naudojant klases. Klasė ir objektas yra panašūs į planą ir namą realiame pasaulyje. Neįmanoma pastatyti namo be tinkamo plano. Taip pat klasė naudojama kuriant objektą. Objektas bendradarbiauja su kitais objektais. Ryšys su reiškia dviejų ar daugiau objektų santykį vadinamas „asociacija“. Apibendrinimas ir sudėtis yra asociacijų tipai. Jie apibūdina santykius tarp klasių. Šiame straipsnyje aptariamas agregavimo ir sudėties skirtumas. Pagrindinis skirtumas tarp agregacijos ir kompozicijos yra tas, kad agregavimas yra dviejų objektų asociacija, apibūdinanti „turi“ryšį, o kompozicija yra konkretesnis agregavimo tipas, kuris reiškia nuosavybę.
TURINYS
1. Apžvalga ir pagrindiniai skirtumai
2. Kas yra apibendrinimas
3. Kas yra sudėtis
4. Suvestų ir sudėties panašumai
5. Gretimas palyginimas -
apibendrinimas ir sudėtis lentelių pavidalu 6. Santrauka
Kas yra agregavimas?
Santykis tarp dviejų objektų parodomas nubrėžus liniją Unified Modeling Language (UML). Nuoroda yra asociacija. UML padeda vizualiai atvaizduoti sistemą. Tai skiriasi nuo įprastų programavimo kalbų. Asociacija taip pat apibrėžia objektų daugybę. Jie yra vienas prie vieno, vienas prie daugelio ir daugybė į daugelį. Kai vienas A klasės objektas siejamas su vieninteliu B klasės objektu, tai yra santykis „vienas su vienu“. Pavyzdys - autorius, rašantis knygą. Šiame pavyzdyje vienas autorius rašo knygą.
Kai vienas A klasės objektas yra susijęs su daugeliu B klasės objektų, tai yra santykis „vienas su daugeliu“. Pavyzdžiui, skyriuje gali būti daug darbuotojų. Kai A klasės objektas yra susijęs su daugeliu B klasės objektų, o B klasės objektas yra susijęs su daugeliu A klasės objektų, tai yra daugeliui asociacijų. Vienas iš pavyzdžių yra tai, kad darbuotojas gali dirbti prie kelių projektų, o projekte gali būti keli darbuotojai.
Agregavimas yra tipo asociacija, kuri dar labiau apibūdina santykį tarp objektų. Apibendrinimas apibūdina „turi“santykius. Keletas santykius apibūdinančių pavyzdžių yra tai, kad studentas „turi“studento tapatybės dokumentą, transporto priemonė turi „variklį“. Taip pat galima išplėsti didelį santykį. Keletas pavyzdžių: bankas „turi daug“banko sąskaitų, klasė „turi daug“mokinių. Tai galima paaiškinti naudojant žemiau pateiktą pavyzdį.
01 pav. Apibendrinimas
Pagal pirmiau pateiktą pavyzdį klasę sudaro mokinys arba daug studentų. Daugybė taip pat naudojama objektų skaičiui nurodyti. Joje aprašoma, kad vienoje klasėje yra keli mokiniai. Deimanto simbolis žymi agregaciją UML. Studentų objektai nepasikliauja klasės objektu. Jei klasės objektas bus sunaikintas, jis neturės įtakos mokinių objektams. Tie objektai vis tiek išliks.
Kas yra kompozicija?
Kompozicija yra konkretesnė agregacijos forma. Tai apibūdina nuosavybės teisę. Tai galima paaiškinti naudojant žemiau pateiktą pavyzdį.
02 paveikslas: sudėtis
Pagal tai, kas išdėstyta pirmiau, knygos objektas susideda iš puslapio objekto arba puslapių. Daugybė taip pat naudojama objektų skaičiui nurodyti. Joje aprašoma, kad vienoje klasėje yra keli mokiniai. Paryškintas deimanto simbolis atspindi kompoziciją UML. Kadangi knygoje yra puslapis arba daug puslapių, tai yra apibendrinta informacija, tačiau ji yra tikslesnė. Jei knygos objektas sunaikinamas, tada sunaikinami ir puslapio objektai. Puslapio objektai negali egzistuoti be knygos objekto. Todėl kompozicija yra konkretesnė agregacijos forma, kuri reiškia nuosavybę.
Kokie yra agregavimo ir kompozicijos panašumai?
- Abu jie naudojami programuojant į objektą.
- Abu jie naudojami vieningoje modeliavimo kalboje (UML), norint vizualiai suprasti sistemą.
Koks skirtumas tarp agregacijos ir kompozicijos?
Skirtingas straipsnis viduryje prieš lentelę
Apibendrinimas ir sudėtis |
|
Agregavimas yra dviejų objektų susiejimas, apibūdinantis „turi“santykį. | Kompozicija yra konkretiausias agregavimo tipas, kuris reiškia nuosavybę. |
UML simbolis | |
Apibendrinimas žymimas deimantu. | Kompozicija žymima paryškintu deimantu. |
Funkcionalumas | |
Apskritai, jei turintis objektas bus sunaikintas, tai neturės įtakos turinčiam objektui. | Kompozicijoje, jei turintis objektas bus sunaikintas, tai paveiks objektą, kuriame yra objektas. |
Santrauka - apibendrinimas ir sudėtis
Objektinis programavimas yra pagrindinė programinės įrangos kūrimo paradigma. OOP sistemoje modeliuojama naudojant objektus. Šie objektai neegzistuoja atskirai. Objektai bendradarbiauja su kitais objektais. Santykis tarp objektų yra žinomas kaip asociacija. Apibendrinimas ir sudėtis yra asociacijos rūšys. Skirtumas tarp agregacijos ir kompozicijos yra tas, kad agregavimas yra dviejų objektų asociacija, apibūdinanti „turi“ryšį, o kompozicija yra konkretesnis agregacijos tipas, kuris reiškia nuosavybę. Apibendrinimas ir sudėtis padeda suprasti sistemos elgseną.
Atsisiųskite apibendrinimo ir sudėties PDF versiją
Galite atsisiųsti šio straipsnio PDF versiją ir naudoti ją neprisijungus, kaip nurodyta citatos pastaboje. Atsisiųskite PDF versiją čia Skirtumas tarp apibendrinimo ir sudėties