Page 27 - 4836
P. 27

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







                                   Таке ставлення включення, або агрегації (aggregation),
                            зображується  лінією  з  ромбиком  на  боці  того  класу,  який
                            виступає  як  власник  або  контейнер.  Необов'язкова  назва
                            відносин записується посередині лінії.
                                   У     нашому      прикладі     ставлення      contain    є
                            двонаправленим.  Об'єкт  класу  Aquarium  містить  кілька




                                                           25
   22   23   24   25   26   27   28   29   30   31   32