Представление классов в диаграмме Венна

В нашем уроке наш Учитель нарисует диаграмму отношений классов с диаграммой UML и Венна.

Наемный работник наследует класс сотрудника

Почасовой сотрудник наследует класс сотрудника

(Я не очень помню контекст занятий)

Он рисует диаграмму Венна так:

Диаграмма классов Венна для учителя

Но я действительно не верю, что так должно быть. На мой взгляд, это что-то вроде этого:

Диаграмма классов Венна На мой взгляд

Кстати, мы оба предполагаем, что классы являются частными частями, не включенными в представление Diagram, или это будет похоже на 3 набора с пересечениями для упрощения диаграммы.

Так что мой вопрос прост: какой из них правильный / ближайший к правильному представлению.

1

Решение

В каком-то смысле они оба.

Первая диаграмма точно описала отношения наследования между классами. Эта диаграмма гласит: «В наборе всех сотрудников некоторые сотрудники работают по часам, а некоторые получают зарплату. Между ними нет дублирования». Employee это более общий набор, поэтому он содержит два более конкретных.

Вторая диаграмма гласит: «Есть работники, которые являются почасовыми и оплачиваемыми. Некоторые из них являются работниками». Это, очевидно, не имеет большого смысла в контексте наследования.

Однако вторая диаграмма является более или менее точным представлением того, какие данные распределяются между этими классами. Члены Hourly Employee а также Salaried Employee объекты будут иметь некоторое наложение, и это наложение — то, что содержится в Employee объекты. Например, у вас могут быть некоторые определения классов, подобные этому:

class Employee {
int employee_id;
}

class SalariedEmployee extends Employee {
int salary;
}

class HourlyEmployee extends Employee {
int wage;
}

SalariedEmployee а также HourlyEmployee оба наследуют employee_id член из их суперкласса. Если бы вы нарисовали определения классов в виде диаграммы Венна, то вторая нарисованная вами диаграмма — примерно то, что вы придумали, но в правильном дизайне Employee класс будет весь перекресток.

Возможно, вам будет полезно подумать об отношениях наследования таким образом, особенно когда вы изучаете ОО, но в большинстве случаев вы обнаружите, что вторая диаграмма обычно подразумевается, а не указывается.

4

Другие решения

Диаграмма Венна ставит кружочки вокруг элементов множеств. Здесь каждый элемент является сотрудником. Представьте себе точки, разбросанные по странице, которые заключены или не заключены в круги. Каждая точка является сотрудником. Все точки попадут в круг сотрудников. Диаграмма вашего учителя показывает, что почасовые и наемные работники являются работниками, и что ни один работник не получает зарплату ни по часам, ни по зарплате.

Можно также использовать ту же настройку для организации абстрактных значений C ++, представляющих / соответствующих сотрудникам.

Вы должны согласовать определения этих терминов / кругов, прежде чем сможете их нарисовать. Например, в каком-то бизнесе, возможно, некоторым сотрудникам платят в обе стороны; тогда маленькие вихри пересекаются. Может быть, нет сотрудников за пределами маленьких кругов; возможно есть.

Трудно понять, что вы пытаетесь сказать о сотрудниках или что, по вашему мнению, пытается сказать ваш учитель, если вы не объясните, когда точка должна упасть в круг.

(Вы можете думать об элементах круга как о структурных значениях, причем круги включают в себя те, которые имеют определенное количество открытых членов и / или полей или меньше. Или что элементы круга являются открытыми членами структуры и / или полями классов, соответствующих различным видам из сотрудников.

Но тогда ваш круг сотрудников должен перекрывать оба типа круга сотрудников.)

1

Первая диаграмма верна. Как наемные, так и почасовые сотрудники наследуют от Employee. Они оба удовлетворяют отношения «работающий».

0

Что касается заявления, вы упомянули, что предположение в вашем случае выглядит следующим образом:
Наемные работники — наследуют —> Почасовые работники — наследуют —> Сотрудник

Если это так, то я думаю, что обе диаграммы не верны.

Это должно быть следующим:

Самый большой круг: сотрудник; В пределах этого: ежечасно; в пределах этого (наименьшего): сотрудник

-2
По вопросам рекламы [email protected]