OpenU.Ru
Параметризованная кооперация, представляющая собой множество параметризованных классификаторов, отношений и поведения, которую можно применять в различных ситуациях путем привязывания ролям образца элементов модели (обычно этими элементами являются классы). Образец - это шаблон кооперации.
Семантика
Образец представляет собой параметризованную кооперацию,
которую можно использовать несколько раз как в одной, так и в нескольких системах.
Образцом можно назвать только ту кооперацию, которую можно использовать во многих
ситуациях. Образец не является единственно возможным решением в данной конкретной
ситуации, он просто представляет собой то решение, которое в прошлом зарекомендовало
себя как эффективное. У большинства образцов есть свои плюсы и минусы, зависящие
от конкретных аспектов системы. Эти плюсы и минусы нужно учитывать, собираясь
использовать тот или иной образец.
В языке UML параметризованная кооперация - это структурное и поведенческое представление
определенных видов образцов. У образцов есть также и другие аспекты, которые
не моделируются непосредственно с помощью UML, например, список их достоинств
и недостатков, а также примеры использования. Большинство таких дополнительных
аспектов можно описать словами. Более полно использование образцов, а также
каталог некоторых наиболее устоявшихся образцов проектирования вы найдете в
книге Гаммы.
Создание коопераций при помощи образцов. Кооперацию можно использовать для спецификации
реализации проектных конструкций в программном коде. Один и тот же вид кооперации
можно использовать несколько раз - для этого нужно, чтобы составляющие этой
кооперации были параметризированы. Образец представляет собой как раз такую
параметризированную кооперацию. Обычно в качестве параметров кооперации выступают
классы ролей. Чтобы создать экземпляр образца, то есть кооперацию, нужно связать
его параметры со значениями (обычно это классы). В общем случае параметризированных
ролей шаблон связывается путем определения класса для каждой роли. Как правило,
роли в ассоциации в образце не параметризированы. При связывании шаблона они
представляют собой неявные ассоциации между классами, привязанные к данной кооперации.
Иначе говоря, при связывании шаблона с целью создания кооперации возникают дополнительные
ассоциации.
Нотация
Связывание образца для создания кооперации изображается в виде пунктирного
эллипса, в котором стоит имя образца (рис. 144). Пунктирная линия соединяет
символ образца с каждым из классов (или другим элементом модели), участвующих
в кооперации. При этом каждая линия помечается именем параметра. В большинстве
случаев имя роли в кооперации можно использовать в качестве имени параметра.
Таким образом, с помощью символа образца можно изобразить использование образца
проектирования, я также - действительные классы, которые используются как его
параметры. Внутренняя структура кооперации, которая создается при связывании
образца, как правило, не показывается.
Рис. 144. Связывание образца с цепью создания кооперации