Ключова разлика – Агрегиране срещу състав
Обектно-ориентираното програмиране (ООП) е често срещана парадигма в разработката на софтуер. Обектът е екземпляр на клас. Не е възможно да създавате обекти наведнъж. Трябва да има план или описание за създаване на обект. Този план е известен като клас. Класът съдържа свойства и методи. Обектите се създават с помощта на класове. Класът и обектът са подобни на план и къща в реалния свят. Не е възможно да се построи къща без подходящ план. По същия начин клас се използва за създаване на обект. Един обект си сътрудничи с други обекти. Връзка с представлява връзката на два или повече обекта се нарича „асоциация“. Агрегацията и композицията са видове асоциации. Те описват връзката между класовете. Тази статия обсъжда разликата между агрегиране и композиция. Ключовата разлика между агрегирането и композицията е, че агрегирането е асоциация между два обекта, която описва връзката „има“, а композицията е по-специфичен тип агрегиране, което предполага собственост.
Какво е агрегиране?
Връзката между два обекта се показва чрез начертаване на линия в Unified Modeling Language (UML). Връзката е асоциация. UML помага да се получи визуално представяне на системата. Той е различен от обикновените езици за програмиране. Асоциацията също определя множеството обекти. Те са едно към едно, едно към много и много към много. Когато единичен обект от клас A е свързан с единичния обект от клас B, това е връзка едно към едно. Пример е автор, който пише книга. В този пример един автор пише книга.
Когато един обект от клас A е свързан с много обекти от клас B, това е връзка "един към много". Например, един отдел може да има много служители. Когато обектът от клас A е свързан с много обекти от клас B и обект от клас B е свързан с много обекти от клас A, това е асоциация много към много. Един пример е, че един служител може да работи по множество проекти и един проект може да има няколко служители.
Агрегацията е асоцииране на типове, което допълнително описва връзката между обектите. Агрегирането описва „има“връзка. Някои примери, които описват връзката, са: ученик „има“студентски идентификатор, превозно средство „има“двигател. Също така е възможно да се разшири голямо количество с връзката. Някои примери са, че една банка „има много“банкови сметки, един клас „има много“ученици. Може да се обясни с примера по-долу.
Фигура 01: Агрегиране
Според горния пример, класната стая се състои от ученик или много ученици. Множеството се използва и за обозначаване на броя на обектите. Описва, че една класна стая има няколко ученици. Символът на ромба представлява агрегацията в UML. Студентските обекти не разчитат на класовия обект. Ако обектът на класа бъде унищожен, това няма да засегне обектите ученик. Тези обекти все още ще съществуват.
Какво е композиция?
Композицията е по-специфична форма на агрегиране. Описва собствеността. Може да се обясни с примера по-долу.
Фигура 02: Композиция
Съгласно горното, обектът книга се състои от обект страница или страници. Множеството се използва и за обозначаване на броя на обектите. Описва, че една класна стая има няколко ученици. Маркираният диамант представлява композицията в UML. Тъй като книгата има страница или много страници, тя е обобщение, но е по-специфично. Ако обектът книга бъде унищожен, тогава обектите на страницата също се унищожават. Страничните обекти не могат да съществуват без обекта книга. Следователно съставът е по-специфична форма на агрегиране, което предполага собственост.
Какви са приликите между агрегирането и състава?
- И двете се използват в обектно-ориентираното програмиране.
- И двете се използват в Unified Modeling Language (UML), за да получите визуално разбиране на системата.
Каква е разликата между агрегиране и съставяне?
Агрегация срещу композиция |
|
Агрегацията е асоциация между два обекта, която описва връзката „има“. | Композицията е най-специфичният тип агрегиране, което предполага собственост. |
UML символ | |
Агрегацията се обозначава с диамант. | Композицията е обозначена с подчертан диамант. |
Функционалност | |
При агрегиране, ако притежаваният обект е унищожен, това няма да засегне съдържащия се обект. | При композиция, ако притежаващият обект е унищожен, това ще засегне съдържащия се обект. |
Обобщение – Агрегиране срещу състав
Обектно-ориентираното програмиране е основна парадигма в разработката на софтуер. В ООП системата се моделира с помощта на обекти. Тези обекти не съществуват изолирано. Обектите си сътрудничат с други обекти. Връзката между обектите е известна като асоциация. Агрегирането и композицията са видове асоцииране. Разликата между агрегацията и композицията е, че агрегацията е асоциация между два обекта, която описва връзката „има“, а композицията е по-специфичният тип агрегация, който предполага собственост. Агрегирането и композицията помагат да се разбере поведението на системата.
Изтеглете PDF версията на Aggregation vs Composition
Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели според бележката за цитиране. Моля, изтеглете PDF версия тук Разлика между агрегиране и композиция