double arrow

Классы ассоциаций


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

User
protectedFile

*

AccesibleBy +accessPrmission
* *

/etc/apache read JohnDoe

/etc/apache read-write MaryBrown

/users/JohnDoe read-write johnDoe

Access Permission – (разрешение доступа) является атрибутом AccessibleBy. Данные в нижней части рисунка показывают возможные значения каждой связи. Класс ассоциации обозначается прямоугольником прикрепленным к ассоциации пунктирной линией. Атрибут Access Permission относиться к файлу и пользователю одновременно и не может быть прикреплен только к одному из них без потери информации(у каждого пользователя на различные файлы различные права доступа.

Атрибуты в ассоциациях типа один-ко-многим

На рисунке показаны атрибуты двух ассоциаций типа 1 ко многим. Каждый человек работающий на компанию занимает определенную должность (JobTitle) и получает жалование(salary), директор(boss) оценивает работу каждого сотрудника (performance rating). Атрибуты могут присутствовать и в ассоциациях типа один-к-одному.




Атрибуты ассоциаций типа один-к-одному и один ко многим можно упаковать в класс противоположный полису с кратностью один(жалование и должность можно перенести в класс Person) однако это делать не рекомендуется, поскольку кратность 1 может измениться.

Класс ассоциаций позволяет четко указать индивидуальность.

Пользователи(Users) могут проходить авторизацию на нескольких рабочих станциях (workstation) каждая авторизация обладает приоритетом(priority) и правами доступа(privilleges), у пользователя есть домашний каталог(HomeDirectory) на всех рабочих станциях, где он авторизован, но у нескольких рабочих станций и пользователей может быть один домашний каталог.

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

Класс ассоциации порождает один единственный экземпляр для каждой пары человека и компании, напротив экземпляров покупок(Purchase) между одним человеком и одной компанией может быть сколько угодно, каждая покупка обладает собственной индивидуальностью и собственными значениями количества даты и стоимости.







Сейчас читают про: