OpenU.Ru
Перечисление, значение которого (открытая (public),
защищенная (protected) или закрытая (private))
указываст на то, видим ли элемент модели вне своего пространства имен.
См. также статью access, в которой приводится обсуждение
правил видимости и применении к внутри пакетным ссылкам.
Семантика
Видимость объявляет возможность элемента модели ссылаться элемент, который
находится в другом пространстве имен. Видимость представляет собой часть отношения,
существующего между элементом и контейнером, в котором он содержится. Таким
контейнер может быть пакет, класс или какое-либо другое пространство имен.
Существует три предопределенные видимости:
открытая (public)
Любой элемент, который может иметь контейнер, видит и данный элемент.
защищенная (protected)
Данный элемент может видеть только элемент, находящийся в этом же контейнере,
либо потомок этого контейнера.
закрытая (private)
Данный элемент может видеть только элемент, находящийся в этом же контейнере.
Все прочие элементы, включая элементы в потомках этот контейнера, не могут ни
ссылаться на этот элемент, ни использовать его каким-либо другим образом.
Для некоторых видов языков программирования можно определить дополнительные
виды видимости. Так, в языке C++ существует видимость программной реализации.
(В действительности, любая видимость, за исключением открытой, зависит от выбранного
языка программирования.) Все дополнительные виды видимостей определяются разработчиком,
инструментом моделирования и генератором кода.
Нотация
Видимость обозначается при помощи соответствующего ключевого слова или пунктуационного
значка, стоящего перед именем элемента модели:
открытая (public) +
защищенная (protected) #
закрытая (private) -
Значок видимости можно скрыть. Отсутствие обозначения видимости не означает,
что она не определена или открыта, - а только то, что она по каким-то причинам
не отображена. При этом инструмент моделирования должен назначать видимость
новым элементам даже в том случае, когда она не изображается. Значок - это сокращенная
форма целой строки спецификации видимости.
Помимо этого, видимость можно специфицировать при помощи ключевых слов (public,
protected, private). Такая форма часто используется как встроенный элемент списка,
который применяется ко всему блоку атрибутов или другим элементам списка.
Дополнительная видимость, специфичная для какого-либо языка программирования,
или видимость, определяемая пользователем, должна быть задана в виде строки
свойств или другим способом, принятом в данном инструменте моделирования.
Классы. В символе класса значок видимости помещается
в элементы списка (атрибуты и операции) и показывает, имеет ли другой класс
Доступ к этим элементам.
Ассоциации. В ассоциации значок видимости помещается
у имени роли целевого класса (тот полюс, к которому будет осуществляться доступ
согласно установкам видимости). Этот значок показывает.
может ли класс, находящийся на дальнем полюсе ассоциации, проследить ее до того
полюса, у которого стоит значок.
Пакеты. В пакете значок видимости помещается прямо
на элементах, которые в нем содержатся, - на классах, ассоциациях и вложенных
пакетах. Этот значок показывает, может ли другой пакет, который имеет доступ
или импортируем первый, видеть его элементы.