Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Распространение операций

Агрегация и композиция

В UML определено две формы отношения «часть-целое»: общая (агрегация) и частная (композиция).

Композиция (composition) — это частный случай агрегации, характеризующийся двумя дополнительными ограничениями. Составляющая часть может принадлежать не более чем одному агрегату. Более того, составляющая часть, приписанная к некоторому агрегату, автоматически получает срок жизни, совпадающий со сроком жизни агрегата. Таким образом, композиция подразумевает, что части принадлежат целому. Это удобно для программирования: удаление объекта-агрегата автоматически вызывает удаление всех его составляющих, если он образует их композицию. Для обозначения композиции используется небольшой закрашенный ромбик, который ставится рядом с классом-агрегатом (для агрегации, не являющейся композицией, используется незакрашенный ромбик).

На рис. 34 изображена компания, состоящая из отделений, которые, в свою очередь, состоят из отделов. Компания косвенно является композицией отделов. Однако компания не является композицией сотрудников, поскольку компания и человек являются независимыми объектами одинакового уровня.

Рисунок 34 – Композиция

 

Распространение (propagation или triggering) операций — автоматическое применение операции к сети объектов, вызываемое применением этой операции к некоторому начальному объекту. Например, перемещение агрегата перемещает его составляющие, таким образом, операция перемещения распространяется на части целого. Распространение операций на составляющие является одним из явных признаков агрегации.

На рис. 35 показан пример распространения. У человека может быть множество документов. Каждый документ состоит из абзацев, которые, в свою очередь, состоят из символов. Операция копирования распространяется с документа на его абзацы и символы. Копирование абзаца приводит к копированию всех его символов. В обратном направлении операция не распространяется: абзац можно скопировать, не копируя весь документ. Аналогичным образом, копирование документа копирует и связь с владельцем, но не приводит к порождению нового экземпляра владельца документа.

 

Рисунок 35 – Распространение операций по агрегациям и композициям

 

В других подходах чаще всего приходится делать выбор «все или ничего»: либо копировать всю сеть, либо копировать только начальный объект. Концепция распространения операций является ясным и мощным средством описания области действия поведения. Операция начинается с некоторого начального объекта и переходит с объекта на объект по связям в соответствии с правилами распространения. Распространение возможно и для других операций: сохранение/восстановление, уничтожение, печать, блокирование, отображение.

В моделях классов распространение обозначается небольшой стрелкой, которая указывает направление. Кроме того, около ассоциации, по которой происходит распространение, ставится имя операции. Эта система обозначений привязывает распространение к ассоциации (агрегации), направлению и поведению. Однако заметьте, что данная система обозначений не является частью UML.

 

<== предыдущая лекция | следующая лекция ==>
Агрегация и ассоциация | Множественное наследование
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 357; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.