Objektno orijentirano programiranje je uobičajena paradigma koja se koristi u razvoju softvera. Objekt je instanca klase koju kreiraju klase. Objekti surađuju jedni s drugima putem Linkova. Veze su fizička i konceptualna veza između objekata. Zbirka veza koje imaju sličnu strukturu i semantiku opisana je kao asocijacija .
Tablica usporedbe
Osnova za usporedbu | sakupljanje | Sastav |
---|---|---|
Osnovni, temeljni | U agregaciji postoji odnos u kojem dijete može postojati neovisno o roditelju. | U sastavu ne može postojati nezavisno od roditelja. |
Vrsta odnosa | "ima" | "dio" |
Vrsta pridruživanja | Slaba udruga | Jaka veza |
UML simbol dizajna | Predstavljen šupljim dijamantom pored klase za sklapanje. | Predstavljen čvrstim dijamantom pored klase za sklapanje. |
Funkcija | Brisanje skupa ne utječe na njegove dijelove. | Ako je objekt klase vlasništva izbrisan, to bi moglo značajno utjecati na objekt klase koji sadrži. |
Definicija agregacije
Agregacija se može definirati kao odnos s klasom montaže do konstitutivnog razreda. Odnos između dva objekta može se prikazati crtanjem segmenta linije u UML-u (Unified Modeling Language).
Na primjer, automobil se sastoji od kotača, motora, mjenjača, upravljača, glavnog tijela itd. Automobil je sklop, a ostali dijelovi su njegovi sastavni dijelovi. Automobil na kotačima je jedna agregacija, automobil motorima je još jedna agregacija, i tako dalje. Svako pojedinačno uparivanje je definirano tako da specificira mnogostrukost svakog sastavnog dijela unutar sklopa kao rezultat može biti prikazan i broj objekata.
Agregacija je tip asocijacije koji opisuje vrstu "ima a" između objekata. Na primjer, automobil “ima” mjenjač, a automobil “ima” motor . Za odnos jedan-na-jedan, primjer je automobil koji ima mnogo kotača .
Definicija sastava
Sastav je također vrsta asocijacije, ali više ograničavajući oblik. U UML-u je predstavljen sitnim čvrstim dijamantom uz klasu montaže.
Dakle, sastav označava vlasništvo nad sastavnim dijelom cjeline. To bi u konačnici povećalo pogodnost programiranja. Sastav može potaknuti brisanje konstitutivnog objekta brisanjem sklopa objekta.
Sastav opisuje "dio" odnosa. Primjerice, list je dio stabla, ako je stablo uništeno, lišće mora biti uništeno.
Ključne razlike između agregacije i sastava
- Agregacija označava odnos u kojem dijete i roditelj mogu postojati neovisno. Nasuprot tome, u kompoziciji dijete je ovisno o roditelju.
- U agregaciji postoji odnos "ima", dok u sastavu postoji "dio" odnosa između skupa i konstitutivnih objekata klase.
- Agregacija je slaba povezanost, dok je sastav jaka asocijacija jer ima više ograničenja.
- U UML dizajnu agregacija je opisana šupljim dijamantom. Nasuprot tome, sastav je prikazan čvrstim dijamantom.
Zaključak
U agregaciji, sastavni dijelovi imaju neovisno postojanje i mogu se dijeliti ili preraspodijeliti na agregate ili na njihov sklop. S druge strane, u sastavu, sastavni dio pripada točno jednom sklopu ili agregatu. Nadalje, dio se stvara kada se formira agregat, a dio se uništava kada se agregat uništi.