Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Имена полюсов ассоциации

Кратность неявно подразумевает наличие полюсов ассоциации (association end). Например, ассоциация один-к-многим имеет два полюса, у одного из которых указана кратность «один», а у другого — «много». Концепция полюса ассоциации — одна из важнейших в UML. Полюс ассоциации может иметь не только кратность, но и свое собственное имя.

Имена полюсов ассоциаций часто присутствуют в описаниях задач в виде существительных. Имя полюса указывается около конца ассоциации (рис. 10). На нашем рисунке Person (Человек) и Company (Компания) участвуют в ассоциации WorksFor (РаботаетНа). Человек по отношению к компании является сотрудником (employee), а компания по отношению к человеку — работодателем (employer). Использование имен полюсов ассоциаций не является обязательным, но чаще всего оказывается проще указывать имена полюсов вместо имен ассоциаций или, по крайней мере, вместе с ними.

 

Рисунок 10 – Указание имени полюса

 

Имена полюсов ассоциаций особенно удобны для прослеживания ассоциаций, потому что каждый из них может рассматриваться как псевдоатрибут. Каждый полюс бинарной ассоциации ссылается на объект или множество объектов, связанных с исходным объектом. С точки зрения исходного объекта, прослеживание ассоциации — это операция, которая возвращает связанные с ним объекты. Имя полюса ассоциации — это средство для прослеживания ассоциации без явного ее указания.

Имена полюсов ассоциаций обязательны для установления ассоциаций между двумя объектами одного и того же класса. Например, на рис. 11 имена container и contents позволяют различить два случая использования класса Directory (Каталог), который имеет ассоциацию с самим собой. Каталог может содержать вложенные каталоги и даже может содержаться сам в себе. Имена полюсов ассоциаций позволяют различать между собой разные ассоциации между одними и теми же классами. На рис. 11 каждый каталог имеет ровно одного пользователя, который является владельцем, и множество пользователей, которые имеют право работать с каталогом. Если между парой классов существует только одна ассоциация, имени классов может быть вполне достаточно, поэтому имена полюсов можно не указывать.

 

Рисунок 11 – Имена полюсов ассоциации

 

Имена полюсов позволяют унифицировать несколько ссылок на один и тот же класс. При построении диаграмм классов следует корректно использовать имена полюсов ассоциаций и не вводить отдельный класс для каждой ссылки (рис. 12). В некорректной модели Человек с Ребенком может быть представлен двумя экземплярами: один для родителя и один для ребенка. В корректной модели экземпляр Человека принимает участие в двух и более связях: дважды в качестве родителя и произвольное количество раз в качестве ребенка. В корректной модели нужно показать, что ребенок не обязательно должен иметь родителя, чтобы рекурсия могла быть прервана.

 

Рисунок 12 – Моделирование ссылок на один и тот же класс

 

Поскольку имена полюсов ассоциации позволяют отличать объекты друг от друга, все имена на дальнем полюсе ассоциации, прикрепленной к некоторому классу, должны быть уникальными. Хотя имя ставится около целевого объекта ассоциации, фактически оно является псевдоатрибутом исходного класса, а потому должно быть уникально внутри него. По той же причине имя полюса ассоциации не должно совпадать с именем какого-либо атрибута исходного класса.

 

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


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


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



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




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