Как создать диаграмму классов отношений между сотрудниками и менеджерами
I'm having a difficult time trying to figure out how to model a certain scenario as a UML design class diagram. Suppose I have the following situation: I have an employee called X who is the CEO of the company. A, B and C reports to X and U,V reports to A. According to me, there should be an Interface called IEmployee which should have employee's name, designation and empNo. Employee class should implement this IEmployee. Manager class should implement Employee.
Что я уже пробовал:
интерфейс IEmployee
{
}
классный работник: IEmployee
{
}
классный руководитель: сотрудник
{
}
F-ES Sitecore
Они оба действительно являются сотрудниками, так что то, что у вас есть до сих пор, имеет смысл. Следующее, о чем вам нужно подумать, - это как вы управляете структурой отчетности. Если это так, что только менеджеры имеют людей, отчитывающихся перед ними, вам понадобится, чтобы ваш класс менеджера имел список объектов IEmployee, которые представляют, кто им отчитывается, поэтому следующий шаг-подумать о том, как вы можете этого достичь.
CHill60
В качестве альтернативы каждый объект Employee имеет атрибут ManagedBy. Для генерального директора это было бы равно нулю. Управляющий класс может иметь метод для определения своих непосредственных подчиненных. Таким образом, вы гарантируете, что сотрудник может появляться только в списке одного менеджера, например, когда они перемещают отдел, вам нужно обновить только один объект (сотрудник) вместо двух (старый менеджер, новый менеджер)
F-ES Sitecore
Или у вас может быть реализация "многие ко многим" между сотрудником и менеджером. Однако, учитывая, что это, очевидно, домашнее задание, я думаю, что более вероятно, что желаемое решение будет тем, которое требует больше размышлений в UML. Ваше решение-это просто одно свойство "ManagedBy", а все остальное делается в коде....это UML-упражнение, поэтому они захотят увидеть какой-нибудь Умлинг.
CHill60
ЛОЛ @ Умлинг. Тут есть новое слово! :-)
Member 11732803
Итак, вы думаете, что я должен добавить свойство в класс Employee под названием "ManagedBy", которое должно быть типа Manager, и оно будет нулевым для генерального директора.? @CHill60
F-ES Sitecore
Если бы это был я, я бы создал интерфейс IManager со свойством, представляющим собой набор объектов IEmployee, который представляет, кем управляет этот человек, а менеджер-это и IEmployee, и IManager. Однако есть много способов решить эту проблему, вам просто нужно пойти с тем, что, по вашему мнению, хочет собеседник.
CHill60
Согласно комментариям F-ES Sitecore - мое решение на самом деле не использует никаких знаний UML - но именно так я бы его реализовал - вам лучше Умлинг
Member 11732803
И да, вы правы насчет более Умлинговой требуемой части :P это то, что я искал некоторые идеи.