У меня есть UML-диаграмма, на которой я хочу отметить некоторые классы как одиночные (потому что они есть). Как мне это сделать? Я изобретаю новый стереотип или просто добавляю комментарий или есть некоторые существующие средства для этого?
Как пометить класс как singleton в UML?
Ответ 1
Крейг Ларман "Применение книги UML и шаблонов" (3-е издание) дает следующие обозначения для диаграммы последовательности:
Обратите внимание, что это означает, что перед вызовом doA
объект :Register
может получить доступ к singleton стандартным способом, например, getInstance()
. Это делает диаграмму более гибкой.
Для диаграммы классов:
Ответ 2
"Что наиболее четко представит концепцию вашему читателю".
Существует разумный пример основного внешнего вида над Wikipedia. Он показывает частный конструктор и общедоступный метод getInstance()
, который возвращает объект типа Singleton
. Я также считаю стереотип вполне разумным способом сделать его явным, не требуя от вашего читателя разобрать детали объекта класса.
Ответ 3
Чтобы указать, что класс является одноэлементным, вы можете написать ограничение между фигурными скобками: {число экземпляров = 1}. Это ограничение должно быть помещено в отсек ограничений в прямоугольнике класса.
Спецификация UML 2.5, §7.6.4, определяет обозначения для ограничений в целом, а §9.2.4 - как показать ограничения классификатора:
Если классификатору принадлежат ограничения, соответствующий инструмент может реализовать отсек, чтобы показать принадлежащие ему ограничения, перечисленные в отдельном отсеке прямоугольника-классификатора-владельца. Название этого дополнительного отсека - "ограничения".
В качестве альтернативы вы можете изобрести свой собственный стереотип "единый".