Студопедия

КАТЕГОРИИ:


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

Агрегація

Асоціація

Якщо два класи концептуально взаємодіють один з одним, то така взаємодія називається асоціацією. Наприклад, бажаючи змоделювати торговельну точку, ми виявляємо дві абстракції: товари (клас Product) і продажі (клас Sale).

Об'єкт класу Sale - це деяка угода, в якій продано від 1 до п об'єктів класу Product. Над лінією поряд з позначенням класу може бути вказана так звана кратність {multiplicity'^), що вказує, скільки об'єктів цього класу може бути пов'язані з одним об'єктом іншого класу. Для представлення поняття "Довільна кількість" в UML використовується символ зірочки *.

Асоціація представляє найбільш абстрактний семантичний зв'язок між двома класами, який виявляється на ранній стадії аналізу. Надалі вона, як правило, конкретизується і набирає вигляду одного із стосунків, що розглядаються далі.

Відношення агрегації між класами має місце, коли один клас містить як складову частину об'єкти іншого класу. Іншими словами, це відношення ціле частина, або відношення has, між двома класами. На діаграмі такий зв'язок позначається лінією із стрілкою у вигляді незафарбованого ромба, яка вказує на ціле. Дійсно, конкретний об'єкт класу Спортзал може містити не усі компоненти (спортивні снаряди), присутні на схемі.

Як розпізнати агрегацію в програмному коді? Для реалізації нестрогої агрегації частина включається в ціле по посиланню: на мові C++ це звичайно покажчик на відповідний клас. Таким чином, якщо цей покажчик дорівнює нулю, то компонент відсутній. Залежно від вирішуваної задачі такий компонент може з'являтися і зникати динамічно протягом життя об'єкту ціле.

Строга агрегація має спеціальну назву - композиція. Вона означає, що компонент не може зникнути, поки об'єкт ціле існує. Нагадаємо, що клас Triangle містив в собі три об'єкти класу Point. На діаграмі відношення композиції позначається прилеглою із стрілкою у вигляді зафарбованого ромба. Найпростішою композицію реалізувати включенням об'єктів-компонентів за значенням, як це і було зроблено в наведеному прикладі. В той же час можлива реалізація і включенням по посиланню, якщо забезпечити наступну вимогу: час життя компонентів повинен або співпадати з часом життя об'єкту ціле, або перекривати його.

 

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


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


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



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




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