Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.



pattern (образец)

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

Семантика

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

Нотация

Связывание образца для создания кооперации изображается в виде пунктирного эллипса, в котором стоит имя образца (рис. 144). Пунктирная линия соединяет символ образца с каждым из классов (или другим элементом модели), участвующих в кооперации. При этом каждая линия помечается именем параметра. В большинстве случаев имя роли в кооперации можно использовать в качестве имени параметра. Таким образом, с помощью символа образца можно изобразить использование образца проектирования, я также - действительные классы, которые используются как его параметры. Внутренняя структура кооперации, которая создается при связывании образца, как правило, не показывается.

Рис. 144. Связывание образца с цепью создания кооперации

Алфавитный указатель