Диаграмма классов с агрегацией и обобщением - PullRequest
1 голос
/ 09 февраля 2010

Я работаю над университетским проектом, и у меня есть следующая проблема, которую я не могу понять.

У меня есть класс под названием Сотрудник Исходя из этого, я обобщаю два сотрудника Подрядчика и Постоянного сотрудника.

Теперь у меня есть команда, состоящая из сотрудников обоих типов, поэтому я планирую использовать агрегацию.

Должен ли я подключить командный класс к двум подклассам или к классу сотрудников?

Спасибо

Ответы [ 4 ]

5 голосов
/ 09 февраля 2010

Для работника класса. Командный класс будет иметь список сотрудников; это не будет заботиться о том, что они на самом деле подрядчики, постоянные работники или сотрудники.

2 голосов
/ 09 февраля 2010

Хм, интересный вопрос ... Если ваш класс Team относится только к Employee, вы сможете в будущем перейти на других типов сотрудников (TeamLeads, Managers и т. Д.). Если вы связываете свой класс Команды с Подрядчиком и PermanentEmployee, вы фактически говорите, что в Команде могут быть Подрядчики, Перми. Сотрудники и больше ничего! Но, возможно, это то, что вы хотите ...

0 голосов
/ 09 февраля 2010

Не используйте агрегацию между Командой и Сотрудниками или их подтипами. Класс Team имеет атрибут «Участники», который представляет собой коллекцию сотрудников. Таким образом, команда может иметь любую комбинацию подтипов сотрудников, включая любые другие подтипы, добавленные позже.

0 голосов
/ 09 февраля 2010

Взгляните сюда: Состав Ассоциации

В UML 2 агрегация будет показана с открытым ромбом.

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