Активный класс

Активный класс (active class) имеет экземпляры, каждый из которых выполняет и управляет собственным потоком управления. Вызовы ме­тодов могут выполняться в клиентском потоке или в потоке активного объекта. Удачным примером может служить командный процессор, который принимает извне командные объекты, а затем исполняет ко­манды в контексте собственного потока управления.

Как видно из рис. 5.21, при переходе от UML 1 к UML 2 нотация ак­тивных классов изменилась. В UML 2 активный класс обозначен до­полнительными вертикальными линиями по краям; в UML 1 он имел толстую границу и назывался активным объектом.

Видимость

Видимость (visibility) - это понятие простое по существу, но содержа­щее сложные нюансы. Идея заключается в том, что у любого класса имеются открытые (public) и закрытые (private) элементы. Открытые элементы могут быть использованы любым другим классом, а закры­тые элементы - только классом-владельцем. Однако в каждом языке действуют свои правила. Несмотря на то что во многих языках употреб­ляются такие термины, какриЬИс (открытый), private (закрытый) крго-tected (защищенный), в разных языках они имеют различные значе­ния. Эти различия невелики, но они приводят к недоразумениям, осо­бенно у тех, кто использует в своей работе более одного языка програм­мирования.

В языке UML делается попытка решить эту задачу, не устраивая жут­кую путаницу. По существу, в рамках UML для любого атрибута или операции можно указать индикатор видимости. Для этой цели можно использовать любую подходящую метку, смысл которой определяется тем или иным языком программирования. Тем не менее в UML пред­лагается четыре аббревиатуры для обозначения видимости: + (public -открытый), - (private - закрытый), - (package - пакетный) и п (protec­ted - защищенный). Эти четыре уровня определены и используются в рамках метамодели языка UML, но их определения очень незначи­тельно отличаются от соответствующих определений в других языках программирования


При использовании видимости применяйте правила того языка про­граммирования, на котором вы работаете. Рассматривая модель в UML с какой-нибудь точки зрения, аккуратно расшифровывайте значения маркеров видимости и старайтесь понять, как эти значения могут из­мениться при переходе от одного языка программирования к другому.

В подавляющем большинстве случаев я не рисую на диаграммах мар­керы видимости; я их использую, только если необходимо подчерк­нуть различия в видимости определенных свойств. И даже в таких случаях я могу, как правило, обойтись без + и -, которые, по крайней мере, достаточно легко запомнить.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: