Skirtumas tarp agregavimo ir sudėties

Turinys:

Skirtumas tarp agregavimo ir sudėties
Skirtumas tarp agregavimo ir sudėties

Video: Skirtumas tarp agregavimo ir sudėties

Video: Skirtumas tarp agregavimo ir sudėties
Video: Cheatsheet of Relationships between classes in a minute! UML - Aggregation, Composition and more! 2024, Lapkritis
Anonim

Pagrindinis skirtumas – apibendrinimas ir sudėtis

Objektinis programavimas (OOP) yra įprasta programinės įrangos kūrimo paradigma. Objektas yra klasės egzempliorius. Neįmanoma sukurti objektų vienu metu. Norint sukurti objektą, turi būti brėžinys arba aprašymas. Šis planas yra ž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 statyti namo be tinkamo plano. Taip pat klasė naudojama objektui sukurti. Objektas bendradarbiauja su kitais objektais. Ryšys su reiškia dviejų ar daugiau objektų ryšį, vadinamas „asociacija“. Agregacija ir sudėtis yra asociacijų tipai. Jie apibūdina santykius tarp klasių. Šiame straipsnyje aptariamas agregavimo ir sudėties skirtumas. Pagrindinis skirtumas tarp agregavimo ir sudėties yra tas, kad agregavimas yra dviejų objektų susiejimas, apibūdinantis ryšį „turi“, o sudėtis yra konkretesnis agregavimo tipas, nurodantis nuosavybės teisę.

Kas yra agregavimas?

Ryšys tarp dviejų objektų parodomas nubrėžiant liniją Unified Modeling Language (UML). Nuoroda yra asociacija. UML padeda gauti vizualų sistemos vaizdą. Tai skiriasi nuo įprastų programavimo kalbų. Asociacija taip pat apibrėžia objektų daugumą. Jie yra vienas prieš vieną, vienas prieš daugelį ir daug su daugeliu. Kai vienas A klasės objektas yra susietas su vienu B klasės objektu, tai yra ryšys vienas su vienu. Pavyzdys yra autorius, rašantis knygą. Šiame pavyzdyje vienas autorius rašo knygą.

Kai vienas A klasės objektas yra susietas su daugeliu B klasės objektų, tai yra ryšys vienas su daugeliu. Pavyzdžiui, skyriuje gali būti daug darbuotojų. Kai A klasės objektas yra susietas su daugybe B klasės objektų, o B klasės objektas – su daugybe A klasės objektų, tai yra asociacija „daugelis su daugeliu“. Vienas iš pavyzdžių: darbuotojas gali dirbti su keliais projektais, o projekte gali būti keli darbuotojai.

Agregavimas yra tipo asociacija, kuri toliau apibūdina objektų ryšį. Agregacija apibūdina ryšį „turi“ryšį. Kai kurie santykius apibūdinantys pavyzdžiai: studentas „turi“studento pažymėjimą, transporto priemonė „turi“variklį. Taip pat santykiuose galima išplėsti didelį kiekį. Kai kurie pavyzdžiai: bankas „turi daug“banko sąskaitų, klasė „turi daug“mokinių. Tai galima paaiškinti toliau pateiktu pavyzdžiu.

Skirtumas tarp agregavimo ir sudėties
Skirtumas tarp agregavimo ir sudėties

01 pav.: Apibendrinimas

Pagal pirmiau pateiktą pavyzdį, klasę sudaro mokinys arba daug mokinių. Daugybė taip pat naudojama objektų skaičiui nurodyti. Jame aprašoma, kad vienoje klasėje yra keli mokiniai. Deimanto simbolis reiškia agregaciją UML. Mokinių objektai nesiremia klasės objektu. Jei klasės objektas bus sunaikintas, tai neturės įtakos mokinio objektams. Tie objektai vis tiek egzistuos.

Kas yra kompozicija?

Sudėtis yra konkretesnė agregavimo forma. Jame aprašoma nuosavybės teisė. Tai galima paaiškinti toliau pateiktu pavyzdžiu.

Pagrindinis agregavimo ir sudėties skirtumas
Pagrindinis agregavimo ir sudėties skirtumas

02 pav.: sudėtis

Atsižvelgiant į tai, kas išdėstyta pirmiau, knygos objektą sudaro puslapio objektas arba puslapiai. Daugybė taip pat naudojama objektų skaičiui nurodyti. Jame aprašoma, kad vienoje klasėje yra keli mokiniai. Paryškintas deimanto simbolis reiškia kompoziciją UML. Kadangi knygoje yra puslapis arba daug puslapių, tai yra apibendrinimas, tačiau jis yra labiau konkretus. Jei knygos objektas sunaikinamas, sunaikinami ir puslapio objektai. Puslapio objektai negali egzistuoti be knygos objekto. Todėl kompozicija yra konkretesnė agregacijos forma, kuri reiškia nuosavybės teisę.

Kokie yra agregavimo ir sudėties panašumai?

  • Abu naudojami objektiniame programavime.
  • Abu yra naudojami Unified Modeling Language (UML), kad būtų galima vizualiai suprasti sistemą.

Kuo skiriasi apibendrinimas ir sudėtis?

Apibendrinimas prieš sudėtį

Agregacija yra dviejų objektų susiejimas, apibūdinantis ryšį „turi“. Sudėtis yra konkretiausias sujungimo tipas, nurodantis nuosavybės teisę.
UML simbolis
Sujungimas pažymėtas deimantu. Sudėtis žymima paryškintu deimantu.
Funkcionalumas
Apibendrinant, jei nuosavybės objektas sunaikinamas, tai neturės įtakos objektui, kuriame yra. Sudėtyje, jei nuosavybės objektas sunaikinamas, tai turės įtakos turinčiam objektui.

Santrauka – apibendrinimas ir sudėtis

Objektinis programavimas yra pagrindinė programinės įrangos kūrimo paradigma. OOP sistemoje sistema modeliuojama naudojant objektus. Šie objektai neegzistuoja atskirai. Objektai bendradarbiauja su kitais objektais. Ryšys tarp objektų yra žinomas kaip asociacija. Agregacija ir sudėtis yra asociacijų rūšys. Skirtumas tarp agregavimo ir sudėties yra tas, kad agregacija yra dviejų objektų asociacija, apibūdinanti „turi ryšį“, o sudėtis yra konkretesnis agregavimo tipas, reiškiantis nuosavybę. Agregavimas ir sudėtis padeda suprasti sistemos elgseną.

Atsisiųskite agregavimo 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 agregavimo ir sudėties

Rekomenduojamas: