Ключова разлика - агрегиране срещу композиция в Java
Агрегирането е асоциация между два обекта, която описва връзката „има-а“. Съставът е по-специфичният вид агрегиране, който предполага собственост. Ключовата разлика между агрегирането и състава в Java е, че ако съдържащият се обект може да съществува без съществуването на притежаващия обект, това е агрегиране и ако съдържащият се обект не може да съществува без съществуването на притежаващия обект, това е композиция.
Обектно-ориентираното програмиране (ООП) е основна парадигма в разработването на софтуер. Използва се за моделиране на софтуера с помощта на обекти. Обектите се създават с помощта на класове. Класът се състои от свойства и методи. В софтуера има множество обекти. Всеки обект си сътрудничи помежду си чрез предаване на съобщения. Връзката между два обекта е известна като асоциация. Както агрегирането, така и съставът са два вида асоциации. Връзката „има-а“описва, че един обект може да използва друг обект. Агрегирането и композицията могат да бъдат приложени на поддържащи OOP езици. Ако съдържащият се обект може да съществува без съществуването на притежаващия обект, тогава асоциацията между тези два обекта е агрегация. Ако съдържащият се обект не може да съществува без съществуването на притежаващия обект,тогава асоциацията между тези два обекта е композиция.
СЪДЪРЖАНИЕ
1. Общ преглед и ключова разлика
2. Какво е агрегиране в Java
3. Какво е композиция в Java
4. Прилики между агрегиране и композиция в Java
5. Равно до сравнение - Агрегиране срещу композиция в Java в таблична форма
6. Резюме
Какво представлява агрегирането в Java?
Агрегирането е вид асоциация. Ако клас има препратка към обект, той е известен като агрегиране. Агрегирането представлява взаимоотношението "има-има". Студентският обект може да има свойства като student_id, име, адрес. Този обект може да има и друг обект, наречен адрес със собствена информация като град, държава, държава. В тази ситуация студентът има референтен адрес на обект. Това е връзка „има-има“.
Фигура 01: Клас на маркировката
Фигура 02: Основна програма за описание на агрегирането
Съгласно горната програма класът Marks се състои от три свойства, които са марки по математика, английски език и наука. Студентът има обект Марки. Той има свои собствени свойства, които са марки на математиката, английския език и науката. В основния метод се създава обект на марки и се присвояват стойности на марки. Студентският обект, който е s1, може да използва обекта с марки, който е m1. Следователно студентът и марките имат връзката „има-а“. Обектът Marks може да съществува без обекта Student. Следователно това е агрегация.
Какво е Композиция в Java?
Композицията е вид асоциация. Това е специфична форма на агрегиране, която предполага собственост. Да приемем, че има два класа, наречени клас A и B. Ако обектът от клас B не може да съществува, ако обектът от клас A е унищожен, това е композиция. Книгата се състои от много страници. Ако книгата бъде унищожена, страниците също ще унищожат. Обектите на страницата не могат да съществуват без обекта на книгата. Вижте програмата по-долу.
Фигура 03: Клас в класната стая
Фигура 04: Училищен клас
Фигура 05: Основна програма за описание на състава
Според горната програма Classroom има две свойства, които са name и numOfStudents. Училището е колекция от предмети в класната стая. В основния метод се създават два обекта в Classroom. Те се добавят към „класни стаи“. Тези „класни стаи“се предават на училищния обект. И накрая, името на класната стая и броят на учениците се отпечатват чрез итерация през колекцията. Ако обектът School е унищожен, обектите в Classroom също ще унищожат. Това е пример за композиция. Той също така съдържа връзката „има-а“и също така предполага собственост.
Каква е връзката между агрегирането и композицията в Java?
Агрегацията и Съставът са два вида Асоциация, а Съставът е специализиран вид Агрегация. Съставът е подмножество на агрегирането
Каква е разликата между агрегирането и състава в Java?
Различна статия Средна преди таблица
Агрегация срещу композиция в Java |
|
Агрегирането е асоциация между два обекта, която описва връзката „има“. | Съставът е по-специфичен вид агрегиране, който предполага собственост. |
Употреба | |
Агрегирането се използва, когато един обект използва друг обект. | Композицията се използва, когато един обект притежава друг обект. |
Въздействие върху обекти | |
В обобщение унищожаването на притежаващия обект няма да повлияе на съдържащия обект. | В състава унищожаването на притежаващия обект ще повлияе на съдържащия го обект. |
Резюме - Агрегация срещу композиция в Java
Агрегирането и композицията са две концепции в ООП. Връзката „има-а“описва, че един обект може да използва друг обект. Агрегирането е асоциация между два обекта, която описва връзката „има-а“. Съставът е по-специфичен вид агрегиране, който предполага собственост. Разликата между агрегирането и състава в Java е, че ако съдържащият се обект може да съществува без съществуването на притежаващия обект, това е агрегация и ако съдържащият се обект не може да съществува без съществуването на притежаващия обект, това е композиция.