Символы в UML, C++, Java
В Java у нас есть несколько модификаторов: protected
, public
, private
, В UML они #
, +
, -
соответственно.
Мой вопрос в том, что ~
символ означает в UML? И имеет ли это какое-то значение в Java, C++?
2 ответа
Это значит package visibility
, что эквивалентно доступу по умолчанию в Java. Нет аналога в C++.
Значение UML для типов видимости дано в описании класса VisibilityKind в документе UML Superstructure (раздел 7.3.56 в текущем документе v2.4.1, доступном по адресу http://www.omg.org/spec/UML/2.4.1).
Доступ к пакету ~
является
Элемент пакета принадлежит пространству имен, которое не является пакетом, и является видимым для элементов, которые находятся в том же пакете, что и его собственное пространство имен. Только именованные элементы, которые не принадлежат пакетам, могут быть помечены как имеющие видимость пакета. Любой элемент, помеченный как имеющий видимость пакета, виден всем элементам в ближайшем включающем пакете (при условии, что другие владеющие элементы имеют надлежащую видимость). Снаружи ближайшего вмещающего пакета элемент, помеченный как имеющий видимость пакета, не виден.
Это то же самое, что доступ к пакету по умолчанию в Java (как сказал Александр), но обратите внимание, что защищенный доступ UML #
это не то же самое, поскольку в Java защищенный доступен как для пакета, так и для подклассов (см., например, этот вопрос). Определение UML
Защищенный элемент виден элементам, имеющим отношение обобщения к пространству имен, которому он принадлежит.
Ключевой принцип заключается в том, что концепции UML не зависят от языка, хотя, очевидно, они предназначены для связи с идеями в реальных языках программирования.