Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Расширения понятия класса в UML



В UML существует несколько разновидностей класса: интерфейс, шаблон, утилита и др.

Интерфейс (interface) ‑ класс, задающий набор операций, но не содержащий в себе поля и реализации этих операций. Класс, реализующий интерфейс, сам определяет содержимое этих операций.

Шаблон (template) или параметризованный класс (parameterixed class). Шаблоны UML очень похожи на шаблоны С++. Они определяют семейство классов, отличающихся значением некоторых формальных параметров.

Утилита (utility) ‑ класс, объединяющий группу общедоступных (глобальных) переменных и процедур.

Для указания вида класса в UML введено понятие стереотипа (stereotype). Стереотип как бы определяет подтип некоего глобального типа класс. Соответственно, классы-интерфейсы имеют стереотип «interface», а классы - утилиты – «utility».

Интерфейс (interface) в UML является описанием группы функций, которые он предоставляет другому классу. Логика работы этих функций не определяется. Имеется возможность задать неформальное описание того, что от них требуется.

Класс поддерживает интерфейс, если он содержит методы, реализующие все операции интерфейса. На диаграмме классов UML интерфейс можно изобразить двумя способами: развернутым и сокращенным. В случае развернутого способа интерфейс изображается на диаграмме как класс со стереотипом «interface» и без секции атрибутов (см. рис. 9.13). Допустимо также сокращенное изображение интерфейса - небольшой кружок с именем интерфейса возле него.

На рис. 9.13 изображен класс «Грузовая машина», который реализует интерфейс «Машина». Связь между ними называется детализацией и представляется на диаграмме в виде пунктирной линии с треугольником на конце. Класс «Грузовая машина» должен предоставить метод, реализующий операцию движение, унаследованную от интерфейса «Машина». На рис. 9.14 изображен класс «Грузовая машина», использующий интерфейс «Машина». Связь между ними называется зависимостью и представляется на диаграмме в виде пунктирной линии со стрелкой на конце. Такая связь говорит о том, что если интерфейс «Машина» изменить, то класс «Грузовая машина» тоже может претерпеть некоторые изменения.

Рис. 9.13

Рис. 9.14

В некоторых случаях в модели необходимы классы со схожей структурой, которые отличаются некоторыми параметрами. Например, имеется описание нескольких динамических массивов для элементов разных типов, а многие операции над их элементами совпадают. Целесообразно определить такую структуру данных, чтобы с ее помощью было бы легко получить динамические массивы, и делать это можно было бы уточнением параметров. Для этого в UML вводится понятие параметризованных классов (parameterixed class), которые еще называют шаблонами (template).

Параметризованный класс или шаблон ‑ это описание множества классов с одним или более неопределенным формальным параметром. Шаблон нельзя использовать как обычный класс, т.к. его параметры должны быть привязаны к определенным значениям. Шаблон не может участвовать в большинстве отношений между классами. Существует два вида отношений, в которых он может участвовать - связи между шаблоном и классом, порожденным от него подстановкой параметров (помечается ключевым словом «bind»), и направленные ассоциации. Направленная ассоциация должна идти от шаблона.

Операции и атрибуты экземпляров шаблонов не отображаются на диаграмме. Иногда требуется добавить новые свойства в класс. В таких случаях следует создать новый класс, чьим предком будет экземпляр шаблона, и далее добавить нужные операции и атрибуты. Иногда при описании классов используют глобальные функции и переменные. Для удобства программирования введено понятие утилита (utility) - класс специального вида, в котором собираются подобные функции и переменные. На диаграмме утилита изображается как класс со стереотипом «utility», и может иметь как атрибуты, так и операции.





Дата публикования: 2014-11-18; Прочитано: 588 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...