Соотношение (агрегация, композиция) заменяет атрибут?
Я довольно новичок в UML-моделировании, так что терпите меня.
Скажем, у меня есть класс с атрибутом students
это список Student
экземпляров. Я установил отношение агрегации к Student
класс, который также находится на диаграмме. Заменяет ли это отношение запись атрибута, такую как #students : Student[]
в классе контейнера, или атрибут и отношение могут сосуществовать?
Заранее спасибо за любые ответы!
3 ответа
Краткий ответ: могут ли существовать атрибут и связь? Нет...
Но если ваши классы являются программными классами, у вас может быть много вариантов их отображения:
Но если ваши классы не являются программными классами и вы моделируете домен, вам следует быть более осторожным, чтобы показать сущность как атрибут или класс. Обычно, если сущность имеет сложный тип, она отображается как отдельный класс. Но это не правило: зависит от контекста.
Атрибут помогает идентифицировать структуру объекта. Агрегация дает общее представление о том, что объект будет содержать один (или несколько) другого типа. Ни один не заменяет, но вместо этого показывает отношения между типами объектов.
Обычно у вас нет атрибутов определенного пользователем (или любого сложного) класса. Вы определенно не показываете атрибут и ассоциацию для одной и той же вещи в UML. Если я понимаю вашу ситуацию, вам нужна ассоциация (или агрегация / композиция)... И поиграйтесь с множителями, чтобы сделать это правильно.