Обобщение действующих лиц
Обобщение действующих лиц (actors) обеспечивает возможность вынести поведение, общее для двух и более действующих лиц, в действующее лицо-родителя
- ДЛ-родитель является более обобщенным, чем его потомки, а ДЛ-потомки — более специализированными, чем их родитель
- Дочернее ДЛ везде может заменять ДЛ-родителя — это принцип замещаемости
- ДЛ-родитель обычно абстрактный — он определяет абстрактную роль
- Дочерние ДЛ конкретны — они определяют конкретные роли
- Обощение ДЛ может упрощать диаграммы вариантов использования
Рассмотрим простой, но достаточно показательный пример.
Рис. 1. Пример двух ДЛ с общим поведением
На рисунке видно, что Клиент и Торговый агент имеют много общего: оба ДЛ могут инициировать одни и те же варианты использования — Получить список продуктов, Заказать продукты, Принять платеж. Разница только в ВИ Вычислить комиссию.
Следовательно мы можем обобщить Клиента и Торгового агента — конкретные ДЛ, в абстрактное ДЛ — Покупатель.
Рис. 2. Общее поведение вынесено в ДЛ-родителя
Следует отметить, что ДЛ-родитель в обобщении ДЛ не всегда абстрактен. Это может быть конкретная роль. Однако хорошим стилем считается делать ДЛ-родителя абстрактным для сохранения простоты семантики обобщения.
Материал подготовлен по книге Джима Арлоу и Айлы Нейштадта "UML 2 и Унифицированный процесс: практический объектно-ориентированный анализ и проектирование, 2-е издание"
Дополнительную информацию можно получить в блоге Дениса Иванова и еще раз в блоге Дениса Иванова
{smfdispute}