Баннер
Баннер

Диаграммы классов - Операции

Оглавление
Диаграммы классов
Ассоциации
Атрибуты
Операции
Ограничения
Упражнения
Анализ вариантов использования
Добавление атрибутов
Добавление связей
Создание ассоциаций
Создание агрегаций
Создание обобщений
Контрольные вопросы
Все страницы
Операции

 

Операции представляют собой процессы, реализуемые классом. Наиболее очевидное соответствие существует между операциями и методами над классом.

Полный синтаксис UML для операций выглядит следующим образом: <признак видимости> <имя> (<список-параметров>): <тип-выражения-возвращающего-значение> = <строка-свойств>, где

  • признак видимости может принимать те же значения, что и для атрибутов;
  • имя представляет собой символьную строку;
  • список-параметров содержит необязательные аргументы, синтаксис которых совпадает с синтаксисом атрибутов;
  • тип-выражения-возвращающего-значение является необязательной спецификацией и зависит от конкретного языка программирования;
  • строка-свойств показывает значения свойств, которые применяются к данной операции. Примером операции на рис. 11.1 является операция закрыть() класса «Контракт».

Обобщение

Типичный пример обобщения включает «Команду проекта» и «Субподрядчика» (см. рис. 11.1). Они обладают некоторыми различиями, однако

у них также много общего. Одинаковые характеристики можно поместить в обобщенный класс «Исполнитель» (супертип), при этом «Команда проекта» и «Субподрядчик» будут выступать в качестве подтипов.

Смысл обобщения заключается в том, что интерфейс подтипа должен включать все элементы интерфейса супертипа. Другая сторона обобщения связана с принципом подстановочности. Субподрядчика можно подставить в любой код, где требуется «Исполнитель», и при этом все должно нормально работать. Это означает, что, разработав код, предполагающий использование «Исполнителя», можно свободно употреблять экземпляр любого подтипа «Исполнителя». Субподрядчик может реагировать на некоторые команды отличным от другого «Исполнителя образом» (в соответствии с принципом полиморфизма), но это отличие не должно беспокоить вызывающий объект.

Обобщение с точки зрения реализации связано с понятием наследования в языках программирования. Подкласс наследует все методы и поля суперкласса и может переопределять наследуемые методы. Подтип можно также реализовать, используя механизм делегирования.

 





Читайте также:

Добавить комментарий


Защитный код
Обновить




Разделы



Главная Rational Rose Диаграммы классов