Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Билет 21. Связи: ассоциация, зависимость, наследование, конкретизация
Связь - это физическое или концептуальное соединение между объектами, специфическое сопоставление, через которое объект- клиент запрашивает услугу у объекта- сервера или через которое один объект находит путь к другому Роли объектов в связях: • Клиент: объект может воздействовать на другие объекты, но сам никогда не подвергается воздействию других объектов • Сервер: объект может только подвергаться воздействию со стороны других объектов, но он никогда не выступает в роли воздействующего объекта. • Агент: объект может выступать как в роли сервера, так и клиента; агент создается для выполнения операций в интересах какого-либо клиента или агента Аттрибуты отношений: • Мощность – сколько объектов может участвовать в связи с обеих сторон • Направленность – связи бывают однонаправленные и двунаправленные, направленность определяет кто из двух участников «знает» о другом • Стереотип связи – устойчивый характер (семантика) связи • Видимость – каким образом один объект «видит» другой • Имена участников • Имя связи
Ассоциация Ассоциация – самая нестрогая из ассоциаций она выражает просто смысловую связь Зависимость обозначает отношение между объектами, когда один из них не может выполнять свои функции без другого это Использование это разновидность зависимости – один класс использует другой для реализации своих функций Ассоциация – смысловая связь, как правило, в процессе проектирования системы отношения между объектами уточняются, и ассоциация может «превратиться» в какую-то более хорошо определенную связь
Зависимость: Зависимость это отношение, характеризующееся тем, что реализация одного из классов зависит от интерфейса другого объекта Зависимость это отношение между классами Зависимость изображается пунктирной стрелкой от зависимого класса к тому, от которого он зависит Отношение использования снабжается стереотипом «uses» («использует») • Мощность: 1: 1 • Направленность: от зависимого к независимому • Стереотип связи: зависимость, поменял и «независимого», нужно менять «зависимого» • Видимость: определяется конкретикой реализации • Имена участников: зависимый (общее имя для второго участника придумать не получается, «независимый»? ) Наследование: Наследование – очень распространенная связь, поэтому для нее существует специальное обозначение
• Наследование – связь между классами • Мощность – 1: 1 • Имена участников – базовый класс, производный класс • Направленность – однонаправленная, от потомка к предку • Стереотип связи – являться (is-a) • Видимость: неприменимо, т.к. наследование - отношение между классами, в отношении участвует «один и тот же» объект • Аттрибут «видимость», неприменим, т.к. нет двух объектов, видимость которых нужно обеспечить, существует лишь один объект, который участвует в этой ассоциации, например, наследование «преподаватель это человек», в этой связи участвует лишь один объект (например, я), который одновременно и преподаватель и человек. Видимость обеспечивается автоматически средствами языка.
Конкретизация: Конкретизация – это создание конкретного класса из параметризованного класса шаблона Две диаграммы, приведенные на рисунке идентичны, это две разные записи одной и той же связи • Отношение между классами • Мощность 1: 1 • Имена участников: клас-щаблон (параметризованный класс), конкретный (конкретизованный) класс • Стереотип связи: «конкретизация» - конкретизируем класс подставляя вместо классов-параметров конкретные классы • Видимость: неприменимо • Аттрибут «видимость», как и в случае наследования неприменим, т.к. нет двух объектов, видимость которых нужно обеспечить, существует лишь один объект, который участвует в этой ассоциации, хотя классов участвует два
Билет №22. Связи: реализация, агрегация, зависимость, класс-ассоциации
Чисто абстрактный класс на диаграмм классов UML не имеет поля для атрибутов, т.к. является выражением «чистого поведения» Два варианта изображения отношения реализации – круг и «пунктирное» наследование В некоторые UML редакторах отношение реализации обозначается простой пунктирной стрелкой с указанием модификатора реализации - < < realize> > Все три варианта абсолютно идентичны в смысле выражения отнощения реализации.
Агрегация Мощность, направленность и имена участников агрегации нужно определить в каждом конкретном случае, общего правила нет Стероеотип – «владение», «обеспечение видимости», «ссылка» т.е. агрегат и включенные объекты существуют независимо друг от друга Видимость для аггрегации задана жестко – это поле-ссылка
Зависимость это отношение, характеризующееся тем, что реализация одного из классов зависит от интерфейса другого объекта Зависимость это отношение между классами Зависимость изображается пунктирной стрелкой от зависимого класса к тому, от которого он зависит Отношение использования снабжается стереотипом «uses» («использует») • Мощность: 1: 1 • Направленность: от зависимого к независимому • Стереотип связи: зависимость, поменял и «независимого», нужно менять «зависимого» • Видимость: определеяется конктретикой реализации • Имена участников: зависимый (общее имя для второго участника придумать не получается, «независимый»? )
Класс-ассоциация – специальный вид связи, в которой присутствуют собственные атрибуты. Пример: для товара, помещенного в заказ можно указать количество экземпляров, кроме того, в заказанном товаре следует хранить копию цены товара, чтобы избежать изменения суммы заказа, если товар начнут продавать по другой цене. Класс-ассоциация реализуется на С++ в виде класса Важно: этот класс не имеет смысла, если нет связи между товарами и заказами • Имена участников, направленность, мощность: определяется конкретикой задачи • Стереотип связи: «класс-ассоциация» - дополнительная информация, которая характеризует связь • Видимость: поля класса Популярное: |
Последнее изменение этой страницы: 2016-07-14; Просмотров: 785; Нарушение авторского права страницы