Возможно ли для композиции и агрегации разделить часть? - PullRequest
0 голосов
/ 04 мая 2019

Я создаю диаграмму классов дизайна UML, где мои классы "Borger" (датский) оказались частью двух других классов (целых):

uml design class diagram

одно отношение является композицией, а другое - агрегацией. Это возможно? Почему / почему нет?

Ответы [ 2 ]

0 голосов
/ 04 мая 2019

Да, это разрешено.Насколько мне известно, в спецификации UML нет ничего, что бы запрещало это.

0 голосов
/ 04 мая 2019

Вы не можете иметь две композиции для Borger , потому что составная агрегация является сильной формой агрегирования, требующей, чтобы объект детали включался в не более чем в один составной объект за раз (§ 9.5.3, стр. 112 из formal-17-12-05.pdf ), но иметь состав ( AggregationKind - составной )и агрегация (с AggregationKind - shared ) возможна.

Точная семантика AggregationKind при оценке shared равнане указано в норме: точная семантика общего агрегирования зависит от области приложения и моделирующего устройства (по-прежнему § 9.5.3 стр. 112 из formal-17-12-05.pdf ), поэтомувы можете решить его значение, позволяя быть совместимым с вашим делом выше.

Однако ваш случай немного странен, и я рекомендую использовать композицию и простое свойство ( AggregationKind равно нет ) для удобства чтения.

Обратите внимание, что в Java вы всегда используете указатели, экземпляр Borger не может быть действительно частью (но это возможно, например, в C ++).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...