Page 27 - 4836
P. 27
Типи відносин між класами
Як правило, будь-яка програма, написана на об'єктно-
орієнтованій мові, є певним набором пов'язаних між собою
класів. Можна провести аналогію між написанням програми і
будівництвом будинку. Подібно до того, як стіна складається
з цегли, комп'ютерна програма з використанням ООП
будується з класів. Причому ці класи повинні мати уявлення
один про одного, для того щоб спільно виконувати
поставлене завдання.
Можливі такі зв'язки між класами в рамках об'єктної
моделі (наводяться лише найбільш прості і часто
використовувані види зв'язків, докладний їх розгляд виходить
за рамки цієї ознайомлювальної лекції):
агрегація (Aggregation);
асоціація (Association);
успадкування (Inheritance);
метакласи (Metaclass).
Агрегація
Відношення між класами типу "містить" (contain) або
"складається з" називається агрегацією, або включенням.
Наприклад, якщо акваріум наповнений водою і в ньому
плавають рибки, то можна сказати, що акваріум агрегує в собі
воду і рибок.
Таке ставлення включення, або агрегації (aggregation),
зображується лінією з ромбиком на боці того класу, який
виступає як власник або контейнер. Необов'язкова назва
відносин записується посередині лінії.
У нашому прикладі ставлення contain є
двонаправленим. Об'єкт класу Aquarium містить кілька
25