Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Определение статичного атрибутаСодержание книги
Поиск на нашем сайте
При добавлении атрибута к классу каждый экземпляр класса получит свою собственную копию этого: атрибута. Рассмотрим, например, класс Employee. В процессе работы приложения мы можем создать: экземпляры трех сотрудников: Джона Доу, Билла Джонса и Джейн Смит. Каждый из этих объектов получит свою собственную копию атрибута Salary. Статичный атрибут (static) — это такой атрибут, который используется всеми экземплярами класса. Если бы атрибут Salary был статичным, он был бы общим для Джона, Билл и Джейн. На языке UML статичный атрибут помечают символом $ в нашем примере Salary станет $Salary. Сделать атрибут статичным можно следующим образом: · Щелкните правой кнопкой мыши на атрибуте в браузере. · В открывшемся меню выберите пункт Open Specification (Открыть спецификацию) или Open Standard Specification (Открыть стандартную спецификацию), если вы работаете с Rose 98i. Появится окно спецификации атрибута класса. · Перейдите на вкладку Detail (Подробно). · Установите флажок Static, чтобы сделать атрибут статичным. Перед именем атрибута на диаграмме Классов появится символ Определение производного атрибута Производным (derived) называется атрибут, созданный из одного или нескольких других атрибутов. Например, класс Rectangle (Прямоугольник) может иметь атрибуты Width (Ширина) и Height (Высота). У него также может быть атрибут Area (Площадь), вычисляемый как произведение ширины и высоты. Так как Area получается из этих двух атрибутов, он считается производным атрибутом. В UML производные атрибуты помечают символом "/". В описанном примере атрибут Area следует написать как /Area. Сделать атрибут производным можно следующим образом: · Щелкните правой кнопкой мыши на атрибуте в браузере. · В открывшемся меню выберите пункт Open Specification (Открыть спецификацию) или Open · Standard Specification (Открыть стандартную спецификацию), если вы работаете с Rose 98i. Появится окно спецификации атрибута класса. · Перейдите на вкладку Detail (Подробно). · Установите флажок Derived (Производный). Перед именем атрибута на диаграмме · Классов появится символ "/". Практика 13. Работа с операциями. Операцией называется связанное с классом поведение. Операция состоит из трех частей: имени, параметров и типа возвращаемого значения. Параметры — это аргументы, получаемые операцией на входе". Тип возвращаемого значения относится к результату действия операции. На диаграмме Классов можно показывать как имена операций, так и их параметры и типы возвращаемого значения. На некоторых диаграммах полезно показывать полную сигнатуру операций. Если же нужно упростить диаграмму, лучше оставить только имена. В языке UML операции имеют следующую нотацию: Имя операции (аргумент: тип данных аргумента!!, аргумент2: тип данных аргумента2,...): тип возвращаемого значения Операции определяют ответственности классов. При идентификации операций и анализе классов имеете в виду следующее: · Относитесь с подозрением к любому классу, имеющему только одну или две операции. Возможно, класс написан совершенно правильно, но его следует объединить с каким-нибудь другим классом. · С величайшим подозрением относитесь к классу без операций. Как правило, класс инкапсулирует не только данные, но и поведение. Класс без поведения лучше моделировать как один или несколько атрибутов. · С осторожностью относитесь к классу со слишком большим числом операций. Набор ответственностей класса должен быть управляем. Если класс очень большой, им будет трудно управлять. В такой ситуации лучше разделить класс на два меньших. Операции реализации Операции реализации (implementor operations) реализуют некоторую бизнес-функциональность. Такие операции можно найти, исследуя диаграммы Взаимодействия. Диаграммы этого типа фокусируются на бизнес-функциональности, и каждое сообщение диаграммы скорее всего можно соотнести с операцией реализации. Необходимо, чтобы каждую операцию^ реализации можно было проследить до соответствующего требования. Это достигается на различных этапах моделирования. Операция выводится из сообщения на диаграмме Взаимодействия, сообщения выделяются из подробного описания потока событий, который создается на основе варианта использования, а последний — на основе требований. Возможность проследить всю эту цепочку гарантирует, что каждое требование будет воплощено в коде, а каждый фрагмент кода реализует какое-то требование. Операции управления Операции управления (manager operations) управляют созданием и разрушением объектов. В эту категорию попадают конструкторы и деструкторы классов вручную создавать конструкторы и деструкторы классов. Операции доступа Атрибуты обычно бывают закрытыми или защищенными. Тем не менее другие классы иногда должны просматривать или изменять их значения. Для этого предназначены операции доступа (access operations). Пусть, например, у нас имеется атрибут Salary класса Employee. Нам бы не хотелось, чтобы другие классы могли изменять этот атрибут. Но мы добавляем к классу Employee две операции доступа: GetSalary и SetSalary. К первой из них, являющейся общей, могут обращаться остальные классы. Она получает значение атрибута Salary и возвращает его вызвавшему ее классу. Операция SetSalary также является общей, она помогает вызвавшему ее классу установить новое значение атрибута Salary. Эта операция может содержать любые правила и условия проверки, которые необходимо выполнить, прежде чем изменить атрибут. Такой подход дает возможность безопасно инкапсулировать атрибуты внутри класса, защитив их от других классов, но все же позволяет осуществлять контролируемый доступ к ним. Создание операций Get и Set (получения и изменения значения) для каждого атрибута класса является промышленным стандартом. Как и в случае операций управления, операции доступа не нужно вводить вручную. При генерации кода Rose автоматически создаст операции Get и Set для каждого атрибута класса. Вспомогательные операции Вспомогательными (helper operations) называются такие операции класса, которые необходимы ему для выполнения его ответственностей, но о которых другие классы не должны ничего знать. Это закрытые и защищенные операции класса. Как и операции реализации, вспомогательные операции можно обнаружить на диаграммах Последовательности и Кооперативных диаграммах. Часто такие операции являются рефлексивными сообщениями. Для идентификации операций выполните следующие действия: · Изучите диаграммы Последовательности и Кооперативные диаграммы. Большая часть сообщений на этих диаграммах является операциями реализации. Рефлексивные сообщения будут вспомогательными операциями. · Рассмотрите управляющие операции. Возможно, требуется добавить конструкторы и деструкторы. Повторим еще раз, что это необязательно — Rose может сделать это за вас при генерации кода. · Рассмотрите операции доступа. Для каждого атрибута класса, с которым будут работать другие классы, необходимо создать операции Get и Set. Как и в случае управляющих операций, это необязательно делать вручную — Rose может создать указанные операции автоматически. Задание возвращаемого класса операции Возвращаемым классом (return class) операции называется тип данных ее результата. Допустим, что у нас имеется операция Add, принимающая два параметра — строки X и Y. Операция преобразует строки X и Y в значения типа integer, складывает их и возвращает целочисленный результат. Возвращаемым классом операции Add будет integer. При определении возвращаемого класса можно использовать либо встроенные типы языка программирования (такие, как string, char или integer) либо определенные в вашей модели классы. Для задания возвращаемого класса операции: · Щелкните правой кнопкой мыши на операции в браузере. · Откройте окно спецификации класса этой операции (или стандартное окно спецификации в Rose 98i). · Укажите возвращаемый класс в раскрывающемся списке или введите свой тип
|
||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 231; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.220.29 (0.006 с.) |