Обектно-ориентираното програмиране е обща парадигма, която се използва в разработката на софтуер. Обектът е инстанция на клас, създаден от класове. Обектите си сътрудничат помежду си чрез връзките. Връзките са физическа и концептуална връзка между обектите. Колекция от връзки със сходна структура и семантика се описва като асоциация .
Сравнителна таблица
Основа за сравнение | съвкупност | композиция |
---|---|---|
Основен | В обобщение има връзка, при която детето може да съществува независимо от родителя. | В състава не може да съществува независимо от родителя. |
Вид на връзката | "има" | "част от" |
Тип асоциация | Слаба асоциация | Силна асоциация |
Символ за дизайн на UML | Представена от кухи диамант до клас на сглобяване. | Представена от солиден диамант до монтажния клас. |
функция | Изтриването на сборката не засяга неговите части. | Ако собственият клас обект е изтрит, той може значително да повлияе на съдържащия обект клас. |
Определение на агрегиране
Агрегацията може да бъде дефинирана като връзка с клас на монтаж към съставния клас. Връзката между два обекта може да бъде представена чрез изчертаване на линеен сегмент в UML (Unified Modeling Language).
Например, автомобилът се състои от колела, двигател, скоростна кутия, кормилно управление, основно тяло и т.н. Автомобилът е комплект, а останалите части са негови съставни части. Колата на колелата е едно агрегиране, колата на двигателите е друга агрегация и т.н. Всяко индивидуално сдвояване се дефинира, за да се уточни кратността на всяка съставна част в сглобяването, като резултат може да се изобрази и броят на обектите.
Агрегирането е тип асоциация, която описва тип "има" тип връзка между обектите. Например една кола „има” скоростна кутия, а автомобилът „има” двигател . За връзката „един към много” един пример е „има” много колела .
Определение на състава
Съставът е и вид асоциация, но по-рестриктивна форма. Тя е представена в UML от малък твърд диамант в съседство с монтажния клас.
Така съставът означава притежание на съставната част на цялото. Това в крайна сметка ще увеличи удобството за програмиране. Съставът може да задейства изтриването на съставния обект чрез изтриване на обект за сглобяване.
Съставът описва връзката „част от“ . Например, листото е част от дърво, ако дървото е разрушено, тогава листата трябва да бъдат унищожени.
Основни разлики между агрегацията и състава
- Агрегирането показва връзка, при която едно дете и родител могат да съществуват независимо. В сравнение със състава детето е зависимо от родителя.
- В обобщение съществува връзка “има”, докато в състава има “част от” връзка между събранието и съставните обекти от клас.
- Агрегацията е слаба асоциация, докато съставът е силна асоциация, защото има повече ограничения.
- В UML дизайна агрегацията се описва с кух диамант. Обратно, композицията е изобразена с твърд диамант.
заключение
В обобщение съставните части имат самостоятелно съществуване и могат да бъдат споделяни или преотстъпвани на агрегати или на тяхното сглобяване. От друга страна, в състава съставната част принадлежи на точно един комплект или агрегат. Освен това частта се създава, когато агрегатът се образува и частта се разрушава, когато агрегатът се унищожава.