Какие отношения я должен выбрать: ассоциация или агрегация? - PullRequest
1 голос
/ 04 февраля 2011

У меня есть таблица Proffesor в базе данных. Я хотел бы создать диаграмму UML для части кода.

Структура класса будет такой: - класс Proffesor, который отображает информацию из таблицы базы данных (идентификатор, имя и т. д.) - класс ProffesorDAL, который подключается к БД и запрашивает ее для добавления, удаления, обновления экземпляров Proffesor - 3 формы, которые добавляют / удаляют / обновляют proffesors, используя класс ProffesorDAL

Я думал, что отношения формы-ProffesorDAL являются композиционными отношениями. Это правильно? Как насчет отношений ProffesorDAL-Proffesor, это может быть агрегация или это просто ассоциация? Каковы наилучшие отношения UML для отношений формы-Proffesor?

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 февраля 2011

Отношения UML Aggregation почти бесполезны - они создают гораздо больше путаницы, чем ценности.У него есть только одно полезное свойство, а именно то, что при использовании в рекурсивных отношениях результирующая структура объекта является ациклической.

На самом деле не стоит зацикливаться на этом.Мой совет - использовать простую двоичную ассоциацию и сконцентрироваться на правильном определении мощности.Это намного полезнее и ценнее.

hth.

1 голос
/ 04 февраля 2011

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

Мой вопрос звучит так: "Есть ли у него это?" Например, я бы сказал, что у Автомобиля 4 колеса (среди длинного списка других предметов).

В моем стандартном дизайне у меня есть BLL между моим UI и DAL. Я начинаю с предположения о слабой связи между моими тремя, позже я прихожу к выводу, что BLL и DAL несколько тесно связаны и могут извлечь выгоду из сильной связи.

Что касается класса Профессора, я предполагаю, что это класс Модели. Модельные классы У меня есть только слабая связь / знания, то есть они появляются только как параметры (ассоциация). Мои DAL не имеют сильной связи с моими классами Model (агрегация). Они всего лишь носители Посланий, сложные целые числа и bools.

...