Соотношение (агрегация, композиция) заменяет атрибут?

Я довольно новичок в UML-моделировании, так что терпите меня.

Скажем, у меня есть класс с атрибутом students это список Student экземпляров. Я установил отношение агрегации к Student класс, который также находится на диаграмме. Заменяет ли это отношение запись атрибута, такую ​​как #students : Student[] в классе контейнера, или атрибут и отношение могут сосуществовать?

Заранее спасибо за любые ответы!

3 ответа

Краткий ответ: могут ли существовать атрибут и связь? Нет...

Но если ваши классы являются программными классами, у вас может быть много вариантов их отображения:

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

Атрибут помогает идентифицировать структуру объекта. Агрегация дает общее представление о том, что объект будет содержать один (или несколько) другого типа. Ни один не заменяет, но вместо этого показывает отношения между типами объектов.

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

Другие вопросы по тегам