Різниця між агрегацією та складом

Ключова різниця - агрегація проти складу
 

Об'єктно-орієнтоване програмування (OOP) - поширена парадигма в розробці програмного забезпечення. Об'єкт - екземпляр класу. Неможливо створити об’єкти відразу. Для створення об’єкта повинен бути креслення або опис. Цей план відомий як клас. Клас містить властивості та методи. Об'єкти створюються за допомогою класів. Клас і об’єкт схожі на план і будинок у реальному світі. Побудувати будинок без належного плану неможливо. Так само клас використовується для створення об'єкта. Об'єкт співпрацює з іншими об'єктами. Посилання з представляє взаємозв'язок двох або більше об'єктів називається "асоціацією". Агрегація та склад - це типи асоціацій. Вони описують стосунки між класами. У цій статті йдеться про різницю між агрегацією та складом. The ключова різниця між агрегацією та складом є те агрегація - це асоціація між двома об'єктами, яка описує зв'язок "має", а склад є більш конкретним типом агрегації, що передбачає право власності.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що таке агрегація
3. Що таке склад
4. Подібність між агрегацією та складом
5. Порівняльне порівняння - агрегація проти складу у табличній формі
6. Підсумок

Що таке агрегація?

Зв'язок між двома об'єктами показано, намалювавши лінію в Уніфікованій мові моделювання (UML). Посилання - це асоціація. UML допомагає отримати візуальне уявлення про систему. Він відрізняється від звичайних мов програмування. Асоціація також визначає кратність об'єктів. Вони бувають один-один, один-багато-багато-багато-багато. Коли один об'єкт класу A асоціюється з єдиним об'єктом класу B, це відносини один до одного. Приклад - автор, який пише книгу. У цьому прикладі один автор пише книгу.

Коли один об'єкт класу A асоціюється з багатьма об'єктами класу B, це відносини один до багатьох. Прикладом є те, що у відділі може бути багато працівників. Коли об’єкт класу A асоціюється з багатьма об'єктами класу B, а об'єкт класу B асоціюється з багатьма об'єктами класу A, це асоціація багатьох до багатьох. Одним із прикладів є те, що працівник може працювати над кількома проектами, а проект може мати декількох працівників.

Агрегація - це об'єднання типів, яке додатково описує взаємозв'язок між об'єктами. Агрегація описує відносини "має". Деякі приклади, що описують взаємозв'язок: студент "має" ідентифікатор студента, транспортний засіб "має" двигун. Також можливо розширити велику кількість із співвідношеннями. Деякі приклади є: у банку "є багато" банківських рахунків, у класу "є багато" студентів. Це можна пояснити, використовуючи наведений нижче приклад.

Малюнок 01: Агрегація

Згідно з вищенаведеним прикладом, аудиторія складається з учня чи багатьох учнів. Множинність також використовується для позначення кількості об'єктів. У ній описано, що в одному класі є кілька учнів. Символ алмазу представляє агрегацію в UML. Об'єкти учнів не покладаються на об’єкт класу. Якщо об’єкт класу знищений, це не вплине на об'єкти учнів. Ці об’єкти все ще існуватимуть.

Що таке склад?

Склад - більш конкретна форма агрегації. У ньому описано право власності. Це можна пояснити, використовуючи наведений нижче приклад.

Малюнок 02: Склад

Згідно з вищезазначеним, об’єкт книги складається із об’єкта сторінки чи сторінки. Множинність також використовується для позначення кількості об'єктів. У ній описано, що в одному класі є кілька учнів. Символ алмазу, який виділяється, позначає композицію в UML. Оскільки книга має сторінку або багато сторінок, вона є агрегацією, але вона більш конкретизована. Якщо об’єкт книги знищений, то об’єкти сторінки також знищуються. Об'єкти сторінки не можуть існувати без об’єкта книги. Тому склад є більш конкретною формою агрегації, яка передбачає право власності.

Які подібності між агрегацією та складом?

  • Обидва використовуються в об'єктно-орієнтованому програмуванні.
  • Обидва використовуються в уніфікованій мові моделювання (UML) для візуального розуміння системи.

У чому різниця між агрегацією та складом?

Агрегація проти складу

Агрегація - це асоціація між двома об'єктами, яка описує відношення "має". Склад - це найбільш специфічний тип агрегації, що передбачає право власності.
 Символ UML
Агрегація позначається ромбом. Склад позначається виділеним ромбом.
Функціональність
У сукупності, якщо об’єкт, що володіє, знищений, він не вплине на об'єкт, що містить його. За складом, якщо об’єкт, що володіє, знищений, це вплине на об'єкт, що містить його.

Підсумок - Агрегація проти складу 

Об'єктно-орієнтоване програмування є головною парадигмою в розробці програмного забезпечення. В OOP система моделюється за допомогою об'єктів. Ці об'єкти не існують ізольовано. Об'єкти співпрацюють з іншими об’єктами. Відносини між об'єктами відомі як асоціація. Агрегація та склад - це види об'єднання. Різниця між агрегацією та складом полягає в тому, що агрегація - це асоціація між двома об'єктами, яка описує співвідношення "має", а композиція - більш конкретний тип агрегації, що передбачає право власності. Агрегація та склад допомагають зрозуміти поведінку системи.

Завантажте PDF-версію агрегації проти складу

Ви можете завантажити PDF-версію цієї статті та використовувати її в офлайн-цілях відповідно до примітки. Завантажте тут версію PDF тут Різниця між агрегацією та складом

Довідка:

1. Використання агрегації та складу, Кар'єра людей, 22 травня 2015 р. Доступно тут