Является ли ArrayList <X>агрегацией или составом? - PullRequest
0 голосов
/ 04 марта 2019

Я готовлюсь к экзамену по программированию и натолкнулся на этот вопрос, я знаю, что при агрегации объект заимствован, а по составу объект принадлежит.Является ли композиция ответа?

Является ли ArrayList<X> агрегацией X или композицией X ?

ArrayList<Point> pts = new ArrayList<Point>();
Point p = new Point(0., 0., 0.);
pts.add(p);
p.setX( 10.0 );
System.out.println(p);
System.out.println(pts.get(0));

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

С здесь :

Простые правила:

  1. A "владеет" B = Состав: B не имеет смысла или цели в системебез A
  2. A "использует" B = Агрегация: B существует независимо (концептуально) от A

Следовательно, это действительно зависит от вашей модели.Могут ли элементы в списке существовать без списка.Должны ли элементы быть включены в список, чтобы иметь смысл?

В случае ArrayList<Point> я думаю, что это агрегация.

0 голосов
/ 04 марта 2019

Поскольку Point существует за пределами массива, это агрегация.

https://www.visual -paradigm.com / guide / uml-unified-моделирование-язык / uml-агрегация-vs-composition /

как указано:

Агрегация подразумевает отношения, в которых ребенок может существовать независимо от родителя.Пример: класс (родитель) и ученик (ребенок).Удалите класс, и ученики все еще существуют.

Композиция подразумевает отношения, в которых ребенок не может существовать независимо от родителя.Пример: Дом (родитель) и Комната (ребенок).Комнаты не существуют отдельно от дома.

...