UML Вы все еще показываете составные / агрегатные объекты как переменные-члены? - PullRequest
2 голосов
/ 13 августа 2011

Если бы у меня был класс Airplane и класс Wing, если между ними были композиционные отношения, есть ли в Airplane переменная-член типа Wing на диаграмме классов, показанной в поле Airplane?

Ответы [ 4 ]

3 голосов
/ 13 августа 2011

Нет. Композиции и агрегации являются разновидностями ассоциаций и показаны как ассоциации, то есть с линиями между классами (со сплошными и полыми ромбами, соответственно, на стороне удержания). Как правило, если у вас есть атрибут, тип которого является классом, ваша модель неверна.

Реализация является совершенно отдельным вопросом от анализа / проектирования. Вы можете реализовать ассоциации различными способами, включая использование переменных-членов, например, в C ++.

2 голосов
/ 16 августа 2011

ASCII art!

+-------------+ 1        1..* +----------+
|  Airplane   |<*>------------|   Wing   |
+-------------+               +----------+

, где <*> представляет заполненный алмаз с указанием состава. Я использовал кратность 1 .. *, так как возможно иметь самолеты, которые по сути являются одним крылом (например, B-2), и хотя никто не строит их больше AFAIK, у вас есть бипланы (2 или 3 крыла, в зависимости от того, как вы считаешь) трипланы и пр.

0 голосов
/ 28 февраля 2012

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

0 голосов
/ 13 августа 2011

Я не уверен в 100%, но насколько я помню, нет.Просто подразумевается, что у вас будет переменная типа Wing.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...