Основы программирования

Основы UML - Шаблоны или параметризованные классы
Индекс материала
Основы UML
Класс
Имя класса
Атрибуты класса
Операция
Отношения между классами
Отношение ассоциации
Отношение агрегации
Отношение композиции
Отношение обобщения
Интерфейсы .
Шаблоны или параметризованные классы
Рекомендации по построению диаграмм классов
Диаграмма состояний (statechart diagram)
Автоматы
Состояние
Список внутренних действий
Начальное состояние
Переход
Сторожевое условие
Выражение действия
Составное состояние и подсостояние
Параллельные подсостояния
Историческое состояние
Сложные переходы
Переходы между составными состояниями
Синхронизирующие состояния
Заключительные рекомендации по построению диаграмм состояний
Диаграмма деятельности (activity diagram)
Состояние действия
Переходы
Дорожки
Объекты
Рекомендации по построению диаграмм деятельности
Диаграмма последовательности (sequence diagram)
Объекты
Линия жизни объекта
Фокус управления
Сообщения
Ветвление потока управления
Стереотипы сообщений
Комментарии или примечания
Заключительные рекомендации по построению диаграмм последовательности
Диаграмма кооперации (collaboration diagram)
Кооперация
Диаграмма кооперации уровня спецификации
Объекты
Мультиобъект
Составной объект
Стереотипы связей
Формат записи сообщений
Заключительные рекомендации по построению диаграмм кооперации
Диаграмма компонентов (component diagram)
Компоненты
Интерфейсы
Зависимости
Рекомендации по построению диаграммы компонентов
Диаграмма развертывания (deployment diagram)
Узел
Соединения
Рекомендации по построению диаграммы развертывания
Особенности реализации языка UML
характеристика CASE-средства Rational Rose 98/2000
Особенности рабочего интерфейса Rational Rose
Стандартная панель инструментов
Специальная панель инструментов
Окно диаграммы
Окно документации
Окно журнала
Начало работы над проектом в среде Rational Rose
Разработка диаграммы вариантов использования в среде Rational Rose
Разработка диаграммы классов в среде Rational Rose
Разработка диаграммы состояний в среде Rational Rose
Разработка диаграммы последовательности в среде Rational Rose
Разработка диаграммы кооперации в среде Rational Rose
Разработка диаграммы компонентов в среде Rational Rose
Разработка диаграммы развертывания в среде Rational Rose
Заключение
Все страницы



5.5. Шаблоны или параметризованные классы

Шаблон (template) или параметризованный класс (parametrized class) предназначен для обозначения такого класса, который имеет один (или более) нефиксированный формальный параметр. Он определяет целое семейство или множество классов, каждый из которых может быть получен связыванием этих параметров с действительными значениями. Обычно параметрами шаблонов служат типы атрибутов классов, такие как целые числа, перечисление, массив строк и др. В более сложном случае формальные параметры могут представлять и операции класса.
Графически шаблон изображается прямоугольником, к верхнему правому углу которого присоединен маленький прямоугольник из пунктирных линий (рис. 5.19), большой прямоугольник может быть разделен на секции, аналогично обозначению для класса. В верхнем прямоугольнике указывается список формальных параметров для тех классов, которые могут быть получены на основе данного шаблона. В верхней секции шаблона записывается его имя по правилам записи имен для классов.

Рис. 5.19. Графическое изображение шаблона на диаграмме классов
Шаблон не может быть непосредственно использован в качестве класса, поскольку содержит неопределенные параметры. Чаще всего в качестве шаблона выступает некоторый суперкласс, параметры которого уточняются в его классах-потомках. Очевидно, в этом случае между ними существует отношение зависимости с ключевым словом «bind», когда класс-клиент может использовать некоторый шаблон для своей последующей параметризации. В более частном случае между шаблоном и формируемым от него классом имеет место отношение обобщения с наследованием свойств шаблона (рис. 5.20). В данном примере отмечен тот факт, что класс «Адрес» может быть получен из шаблона Связный_список на основе актуализации формальных параметров «S, k, l» фактическими атрибутами «улица, дом, квартира».
Этот же шаблон может использоваться для задания (инстанцирования) другого класса, скажем, класса «Точки_на_плоскости». В этом случае класс «Точки_на_плоскости» актуализирует те же формальные параметры, но с другими значениями, например, "ЬтсГ<координаты_точки, х, у>. Концепция шаблонов является достаточно мощным средством в ООП, и поэтому ее использование в языке UML позволяет не только сократить размеры диаграмм, но и наиболее корректно управлять наследованием свойств и поведения отдельных элементов модели.