2016-12-22 3 views
-1

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

enter image description here Существует контроллер, в котором есть несколько классов TopicLoaderIF и несколько классов TopicReaderIF. ТемаLoaderIF создает серию TopicIF по запросу от контроллера. Затем контроллер переадресует эти TopicIF в правильный TopicReaderIF. Давайте не будем входить в погоду, эта модель правильная или нет, но в отношениях между ними.

Дело в том, что я пытаюсь моделировать это как диаграмму класса UML, но я застрял в размышлении о видении отношения между контроллером и TopicIF (красным), если на диаграмме должно быть что-то. Более того, я также не уверен, правильно ли все три объекта, TopicLoaderIF, Controller и TopicReaderIF имеют прямые ассоциации с TopicIF. Должны ли они быть просто нормальной ассоциацией, без стрелы?

Буду признателен за любые советы, которые вы можете дать мне относительно этой диаграммы.

+0

Взаимоотношения абстрактные. Таким образом, вы не можете создавать их, как с помощью «TopcReaderIF». –

ответ

1

Navigability expresses A можно увидеть B если есть стрелка от A до B. В грубом эскизе эти стрелки могут быть полезны, но не обязательно. Если стрелка отсутствует, оба класса могут видеть друг друга, но не должны. При реализации такой неопределенной ассоциации вы будете судить по потребностям и только внедрять необходимые ссылки (если B не нужно видеть A, вы не будете реализовывать ссылку).

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

TL; DR При эскизе используйте стрелки. После того, как вы начнете с деталей, замените их именами ролей.

Смежные вопросы