Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Правильно ли я понял тему агрегации и композиции?

#java


Композиция и агрегация представляют собой создание объект-ов(а) класса в общем классе.

В случаях использования композиции и агрегации, класс не «является» (предпочтительней
наследование), а «является частью». Рука не является человеком, но является частью
человека(пример композиции). Пистолет не является полицейским, но является частью полицейского(пример
агрегации).

Композиция контролирует жизненный цикл своих составных частей, в агрегации они могут
жить и отдельно. Разница композиции и агрегации в контроле жизненного цикла.
    


Ответы

Ответ 1



Разница между композицией и агрегацией в различных требованиях к дизайну класса. Вместе с тем ваше утверждение "Разница композиции и агрегации в контроле жизненного цикла." тоже верно. Есть отличный ответ на эту тему: https://ru.stackoverflow.com/a/597085/217374

Ответ 2



В целом все верно. Композиция и агрегация являются частными случаями ассоциации. Ассоциация - это когда классы имеют ссылки друг на друга, так как им необходимо взаимодействовать между собой. Например, класс Собака и класс Человек. Оба являются независимыми, самодостаточными, но иногда они взаимодействуют между собой Композиция - это когда какой то класс является самодостаточным, а другие не могут независимо от него существовать. Например, класс Рука и класс Человек. Рука является частью Человека, но она не может существовать отдельно от Человека. Агрегация - аналогично композиции, но здесь уже класс является самодостаточным и он может быть использован в различных классах. Например, класс Телевизор и класс Бабушка и класс Дедушка. С Телевизором Бабушка и Дедушка могут выполнять различные действия, не обязательно что только один класс. Более подробно и с uml диаграммами можете ознакомиться по ссылке

Комментариев нет:

Отправить комментарий