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


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

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

  1. Подготовьте шаблон разговора
  2. Диаграмма классов (class diagram)
  3. КЛАСС
  4. 5.1. Класс
  5. МАСТЕР-КЛАСС
  6. КЛАСС
  7. Классы
  8. 5.2. Отношения между классами
  9. СРЕДНИЙ КЛАСС
  10. Сказка о защите средних классов
  11. 5.6. Рекомендации по построению диаграмм классов
  12. Упражнение 15. Порождение классов решений
  13. 12.5. Разработка диаграммы классов в среде Rational Rose
  14. 21. Менеджер высокого класса
  15. 1.9. МЕТОДИКА ОПРЕДЕЛЕНИЯ КЛАССА КРЕДИТОСПОСОБНОСТИ И УСЛОВИЯ КРЕДИТОВАНИЯ КЛИЕНТА
  16. КЛАСС (лат. classls - разряд, группа
  17. Описание судна. Название. Право субститута. Национальность. Класс
  18. КЛАССИФИКАЦИЯ (лат. classis - разряд, класс и f acio - делаю, раскладываю)
  19. Положение о порядке присвоения класса квалификации машинистам локомотивов и моторвагонного подвижного состава на российских железных дорогах