Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp agregacijos ir sudėties

Apibendrinimas ir sudėtis yra asociacijos rūšys. Pagrindinis atskirimo ir sudėties skirtumas yra tas, kad agregacija numato santykį, kai vaikas gali egzistuoti nepriklausomai nuo tėvų. Kita vertus, kompozicija įterpia santykį, kai vaikas negali egzistuoti nepriklausomai nuo tėvų.

Objektinis programavimas yra bendra paradigma, naudojama programinės įrangos kūrimui. Objektas yra klasės klasė, sukurta pagal klases. Objektai bendradarbiauja tarpusavyje per „Links“. Nuorodos yra fizinis ir konceptualus ryšys tarp objektų. Nuorodų, turinčių panašią struktūrą ir semantiką, rinkinys apibūdinamas kaip asociacija .

Palyginimo diagrama

Palyginimo pagrindasApibendrinimasSudėtis
PagrindinisApibendrinant ten eksponuojami santykiai, kai vaikas gali egzistuoti nepriklausomai nuo tėvų.Sudėtis negali egzistuoti nepriklausomai nuo tėvų.
Santykių tipas"turi""dalis"
Asociacijos tipasSilpna asociacijaStipri asociacija
UML dizaino simbolisAtstovauja tuščiaviduriai deimantai šalia surinkimo klasės.Atstovauja tvirtas deimantas šalia surinkimo klasės.
FunkcijaMontavimo ištrynimas neturi įtakos jo dalims.Jei nuosavybės klasės objektas yra ištrintas, jis gali turėti reikšmingą poveikį turinčiam klasės objektui.

Apibendrinimo apibrėžtis

Apibendrinimas gali būti apibrėžiamas kaip santykis su surinkimo klase prie sudedamosios klasės. Ryšys tarp dviejų objektų gali būti pateikiamas brėžiant linijos segmentą UML (Unified Modeling Language).

Apibendrinimas taip pat naudojamas norint nurodyti daugybę objektų, pvz., „Vienas su vienu“, „vienas su vienu“ ir daugelį „daug“. Kai X klasės objektas yra susietas su vienu Y klasės objektu, tokiu atveju egzistuoja vienas su vienu ryšys. Panašiai, jei vienas klasės objektas yra susietas su keliais klasės objektais, tai šis ryšys vadinamas „vienas su vienu“.

Pavyzdžiui, automobilis susideda iš ratų, variklio, pavarų dėžės, vairo, pagrindinio korpuso ir tt Automobilis yra surinkimas, o kitos dalys yra jos sudedamosios dalys. Automobilis prie ratų yra viena agregacija, automobilis varikliams yra kita agregacija ir pan. Kiekvienas atskiras susiejimas apibrėžiamas kiekvienos sudedamosios dalies daugybėje, kaip rezultatas, taip pat gali būti pavaizduotas objektų skaičius.

Apibendrinimas yra asociacijos tipas, apibūdinantis „turi“ tipo ryšį tarp objektų. Pavyzdžiui, automobilis „turi“ pavarų dėžę, o automobilis „turi“ variklį . Vieno ir kito santykiams pavyzdys yra automobilis, turintis daug ratų .

Sudėtis

Kompozicija taip pat yra asociacijos tipas, bet labiau ribojanti forma. Jame UML atstovauja mažas kietas deimantas, esantis šalia surinkimo klasės.

Šio tipo asociacijose sudedamąja dalimi galima susieti ne daugiau kaip vieną surinkimą. Be to, kai sudedamoji dalis bendradarbiauja su montavimu, ji kartu su surinkimu turės visą gyvenimą.

Taigi sudėtis reiškia nuosavybės teisę į visos sudedamosios dalies dalį. Tai galiausiai padidintų programavimo patogumą. Kompozicija gali sukelti sudėtinio objekto ištrynimą išbraukiant surinkimo objektą.

Kompozicijoje aprašoma „dalis“ santykių. Pavyzdžiui, lapas yra medžio dalis, jei medis sunaikinamas, lapai turi būti sunaikinti.

Pagrindiniai suvienodinimo ir sudėties skirtumai

  1. Apibendrinimas rodo ryšį, kai vaikas ir patronuojančios įmonės gali egzistuoti savarankiškai. Kaip ir kompozicijoje, vaiko subjektas priklauso nuo tėvų.
  2. Apibendrinant egzistuoja santykis „turi“, o kompozicijoje yra „dalis“ santykio tarp susirinkimo ir sudedamųjų klasių objektų.
  3. Agregacija yra silpna asociacija, o sudėtis yra stipri asociacija, nes ji turi daugiau apribojimų.
  4. UML dizaine apibendrinimas apibūdinamas tuščiaviduriu deimantu. Priešingai, sudėtis yra pavaizduota kietu deimantu.

Išvada

Apibendrinant, sudedamosios dalys turi savarankišką egzistavimą ir gali būti dalijamos arba perduodamos agregatams ar jų surinkimui. Kita vertus, sudėtyje sudedamoji dalis priklauso tiksliai vienam surinkimui ar agregatui. Be to, dalis sukuriama, kai susidaro agregatas, o dalis sunaikinama, kai agregatas sunaikinamas.

Top