Aggregatie is een associatie tussen twee objecten die de 'has-a'-relatie beschrijft. De samenstelling is het meer specifieke type aggregatie dat eigendom impliceert. De belangrijk verschil tussen aggregatie en compositie op Java is dat, als het ingesloten object kan bestaan zonder het bestaan van het eigendomobject, is het een aggregatie en als het bevatte object niet kan bestaan zonder het bestaan van het bezittend object, is het een compositie.
Object-Oriented Programming (OOP) is een belangrijk paradigma in softwareontwikkeling. Het wordt gebruikt om de software te modelleren met behulp van objecten. De objecten worden gemaakt met behulp van klassen. Een klasse bestaat uit eigenschappen en methoden. Er zijn meerdere objecten in de software. Elk object werkt met elkaar samen via het doorgeven van berichten. De relatie tussen twee objecten staat bekend als een associatie. Zowel aggregatie als samenstelling zijn twee soorten associaties. De "has-a" -relatie beschrijft dat een object een ander object kan gebruiken. Aggregatie en samenstelling kunnen worden geïmplementeerd in OOP-ondersteunende talen. Als het ingesloten object kan bestaan zonder het bestaan van het eigendomobject, dan is de associatie tussen deze twee objecten een aggregatie. Als het ingesloten object niet kan bestaan zonder het bestaan van het bezittend object, dan is de associatie tussen deze twee objecten een compositie.
1. Overzicht en belangrijkste verschil
2. Wat is Aggregatie op Java
3. Wat is Compositie in Java
4. Overeenkomsten tussen aggregatie en compositie op Java
5. Vergelijking zij aan zij - Aggregatie versus samenstelling op Java in tabelvorm
6. Samenvatting
Aggregatie is een type associatie. Als een klasse een entiteitreferentie heeft, staat deze bekend als aggregatie. Aggregatie vertegenwoordigt de relatie has-a. Een Student-object kan eigenschappen hebben zoals student-ID, naam, adres. Dit object kan ook een ander object hebben met de naam adres met eigen informatie zoals stad, staat, land. In deze situatie heeft de student een referentienummer van de entiteit. Het is een "heeft-een" relatie.
Figuur 01: Markeert Klasse
Figuur 02: Hoofdprogramma om aggregatie te beschrijven
Volgens het bovenstaande programma bestaan de klassemarkeringen uit drie eigenschappen die wiskunde-, Engels en wetenschappelijk tekens zijn. De student heeft een object van Marks. Het heeft zijn eigen eigenschappen die kenmerken zijn van wiskunde, Engels en wetenschap. In de hoofdmethode wordt een object van labels gemaakt en worden markeringswaarden toegewezen. Het studentobject dat s1 is, kan het markeringsobject m1 gebruiken. Daarom hebben de student en de merken de "has-a" -relatie. Het Marks-object kan bestaan zonder het Student-object. Daarom is het een aggregatie.
Compositie is een type associatie. Het is een specifieke vorm van aggregatie die eigendom impliceert. Stel dat er twee klassen zijn, klasse A en B. Als het object van klasse B niet kan bestaan als het object van klasse A wordt vernietigd, dan is dat een compositie. Een boek bestaat uit veel pagina's. Als het boek wordt vernietigd, zullen de pagina's ook vernietigen. De pagina-objecten kunnen niet bestaan zonder het boekobject. Raadpleeg het onderstaande programma.
Figuur 03: Classroom Class
Figuur 04: Schoolklasse
Figuur 05: Hoofdprogramma om compositie te beschrijven
Volgens het bovenstaande programma heeft de Classroom twee eigenschappen die naam en numOfStudents zijn. The School is een verzameling Classroom-objecten. In de hoofdmethode worden twee Classroom-objecten gemaakt. Die zijn toegevoegd aan 'klaslokalen'. Deze 'klaslokalen' worden doorgegeven aan het schoolobject. Ten slotte worden de naam van het klaslokaal en het aantal studenten afgedrukt door de verzameling te doorlopen. Als het School-object wordt vernietigd, vernietigen de Classroom-objecten ook. Dit is een voorbeeld van compositie. Het bevat ook de 'has-a'-relatie en impliceert ook het eigendom.
Aggregatie versus compositie op Java | |
Aggregatie is een associatie tussen twee objecten die de relatie 'heeft een' beschrijft. | Compositie is een meer specifiek type aggregatie dat eigendom impliceert. |
Gebruik | |
Aggregatie wordt gebruikt wanneer een object een ander object gebruikt. | Compositie wordt gebruikt wanneer een object een ander object bezit. |
Beïnvloed op objecten | |
Bij samenvoeging heeft het vernietigen van het eigen object geen invloed op het bevattende object. | In samenstelling zal vernietiging van het eigen object het bevattende object beïnvloeden. |
Aggregatie en samenstelling zijn twee concepten in OOP. De "has-a" -relatie beschrijft dat een object een ander object kan gebruiken. Aggregatie is een associatie tussen twee objecten die de 'has-a'-relatie beschrijft. Compositie is een meer specifiek type aggregatie dat eigendom impliceert. Het verschil tussen aggregatie en compositie in Java is dat, als het ingesloten object kan bestaan zonder het bestaan van het eigendomobject, het een aggregatie is en als het ingesloten object niet kan bestaan zonder het bestaan van het eigendomobject, is het een compositie.
1. "Associatie, samenstelling en aggregatie op Java." GeeksforGeeks, 8 feb. 2018. Beschikbaar Hier
2. "Aggregatie in Java - Javatpoint." Java Point. Beschikbaar Hier