Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Назначение стереотипа для атрибутаСодержание книги
Поиск на нашем сайте
Как у действующих лиц, вариантов использования и классов, у атрибутов могут быть стереотипы. Стереотип атрибута является способом его классификации. Например, некоторые атрибуты могут соответствовать полям базы данных, а другие нет. Для каждого такого типа можно определить свой стереотип. В Rose необязательно назначать стереотипы атрибутам. Стереотипы не требуются для генерации кода, но при их использовании легче читать и понимать модель. Для назначения стереотипа атрибуту: · Щелкните правой кнопкой мыши на атрибуте в браузере. · В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). Вы увидите окно спецификации атрибута класса. · Укажите стереотип в раскрывающемся списке или введите новый стереотип. Задание начальных значений атрибута Атрибуты могут иметь значения по умолчанию. Например, класс Order содержит информацию и поведение, связанное с заказами, которые получает ваша компания. Атрибут TaxRate этого класса представляет собой ставку налога с покупки. В вашем городе налог равен 7.5%, так что почти все заказы будут облагаться налогом 7.5%. Следовательно, у атрибута TaxRate можно определить значение по умолчанию, равное 0.075. Для генерации кода, как и в случае стереотипов, задавать начальные значения необязательно. Тем не менее при их наличии генерируемый код будет соответствующим образом инициализировать атрибут. Для задания начального значения атрибута: · Щелкните правой кнопкой мыши на атрибуте в браузере. · В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). Вы увидите окно спецификации атрибута класса. · В поле Initial Value (Начальное значение) введите значение атрибута по умолчанию. Задание видимости атрибута Одной из центральных концепций объектно-ориентированного программирования является инкапсуляция. Благодаря наличию атрибутов и операций, каждый класс инкапсулирует некоторое количество данных и поведение. К преимуществам такого подхода относится возможность создания небольших самодостаточных фрагментов кода. Класс Employee, например, содержит всю связанную с сотрудником информацию и поведение. Класс можно представить себе следующим образом: Так как атрибуты содержатся внутри класса, они скрыты от других классов. В связи с этим нужно указать, какие классы имеют право читать и изменять атрибуты. Это свойство называется видимостью атрибута (attribute visibility) Допустимы четыре значения этого параметра. Рассмотрим каждый из них в контексте примера. Пусть у нас имеется класс Employee с атрибутом Address и класс Company. Public (Общий, открытый) Атрибут виден всем остальным классам. Любой класс может просмотреть или изменить значение атрибута. В таком случае класс Company может изменить значение атрибута ^Address класса Employee. В соответствии с нотацией UML общему атрибуту предшествует знак "+". Private (Закрытый, секретный) Атрибут не виден никаким другим классам. Классу Employee будет известно значение атрибута Address, и он сможет редактировать его, но класс Company не сможет его ни увидеть, ни изменить. При необходимости он должен попросить у класса Employee разрешение на просмотр или изменение значения этого атрибута, что обычно делается с помощью общих операций (см. ниже). В соответствии с нотацией UML закрытый атрибут обозначается знаком "-". Protected (Защищенный) Атрибут доступен только самому классу и его потомкам. Допустим, что имеются два различных типа сотрудников: с почасовой оплатой и с окладом. Таким образом, мы получаем классы HourlyEmp и SalariedEmp, являющиеся потомками класса Employee. Защищенный атрибут Address можно просмотреть или изменить из классов Employee, HourlyEmp и SalariedEmp, но не из класса Company. Нотация UML для защищенного атрибута — знак "#". Package or Implementation (Пакетный) Атрибут является общим, но только в пределах своего пакета. Допустим, что атрибут Address имеет пакетную видимость. В таком случае он может быть изменен из класса Company, только если этот класс находится в том же пакете. Данный тип видимости не обозначается никаким специальным значком. В общем случае атрибуты рекомендуется делать закрытыми или защищенными. Это позволяет лучше контролировать сам атрибут и код. При использовании закрытых или защищенных атрибутов удается избежать ситуации, когда значение атрибута изменяется всеми классами системы. Вместо этого логика изменения атрибута будет заключена в том же классе, что и сам атрибут. Задаваемые параметры видимости влияют на генерируемый код. Задание метода локализации атрибута Метод локализации атрибута (containment) показывает, каким образом атрибут хранится в классе.: Возможны три значения этого параметра: By value (По значению) Предполагается, что атрибут содержится внутри класса. Например, если атрибут относится к типу string, эта строка будет содержаться внутри определения класса. By reference (По ссылке) Предполагается, что атрибут локализован вне класса, но класс содер-: жит указатель на него. Например, у класса Timecard (Карточка табельного учета) может быть ат-: рибут типа Employee (Сотрудник). Сам объект employee размещен вне объекта timecard. Таки\с образом, этот атрибут является указателем на внешний объект employee. Unspecified (Не определен) Метод локализации атрибута еще не определен. В этом случае прк генерации кода по умолчанию применяется значение By value этого параметра. Задать метод локализации атрибута можно следующим образом: · Щелкните правой кнопкой мыши на атрибуте в браузере. · В открывшемся меню выберите пункт Open Specification (Открыть спецификацию) или Орегь Standard Specification (Открыть стандартную спецификацию), если вы работаете с Rose 98i. Появится окно спецификации атрибута класса. · Перейдите на вкладку Detail (Подробно). · Укажите значение метода локализации атрибута (containment): By value, By reference или Unspez cified. Значение этого параметра по умолчанию — Unspecified.
|
||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 347; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.174.204 (0.007 с.) |