#uml #class-relationship
#uml #класс-связь
Вопрос:
Случай A Допустим, у вас есть 2 класса Model
и Settings
.
Настройки не содержат ничего, кроме public static
констант, используемых во всем приложении. Какой тип связи, по вашему мнению, имеют эти 2 класса?
Пример B Допустим, у вас есть IntersectionManager
singleton
класс, который используется классами, Road
и Car
для извлечения из него некоторых данных.
Как называется связь «класс использует класс» в UML?
Использовали бы вы одинаковые отношения как для случая A, так и для случая B? Какую стрелку UML вы бы использовали, чтобы продемонстрировать эту связь?
Ответ №1:
Ну, вы могли бы использовать связь «использует» (пунктирная линия, стрелка открытия). Я нашел хороший и полезный обзор на https://web.archive.org/web/20180722012752/http://usna86-techbits.blogspot.com/2012/11/uml-class-diagram-relationships.html
Ответ №2:
Обычная черная и сплошная ассоциативная линия в обоих случаях. Необязательно со стрелками на одном или обоих концах, чтобы проиллюстрировать направление использования.
Комментарии:
1. Зависит от вашей реализации и от того, кто кем владеет, я думаю. Возможно, вы правы, но зачем спрашивать, если вы уже знаете ответ?
2. Я этого не сделал, когда был задан вопрос. Google был достаточно любезен, чтобы помочь. Не могли бы вы добавить немного больше о том, «кто кем владеет» и насколько это важно, пожалуйста?
3. Обычно действительно сложно поместить все отдельные стороны структуры класса / объекта в одну диаграмму UML, такие как владения, способы использования, отношения классов, объектные отношения, количество объектов и т.д.
4. достаточно справедливо 🙂 Кто кому принадлежит, означает, какой класс имеет какой другой класс в качестве атрибута-члена. Как отдельный атрибут, массив и т.д. Или это также может означать, какой объект имеет какой другой объект в атрибуте member.
5. На самом деле, теперь, когда я думаю больше.. В обоих случаях статические классы используются из обычных классов / объектов (одноэлементный объект, полученный с помощью статического вызова функции). Тогда тип зависимости звучал бы более выполнимо. Мой поспешный ответ отразил мой опыт, поскольку обычно требуется слишком много времени, чтобы попытаться создать идеальную модель. Таким образом, я просто использую обычные ассоциативные линии / стрелки для моделирования того, что я делаю дальше, и покончу с этим. Как я уже говорил, UML плохо подходит при попытке смоделировать все на одной диаграмме. В итоге вы либо будете разочарованы, либо получите множество диаграмм об одном и том же случае с разных точек зрения.