Ассоциация обозначает семантическое соединение классов. Пример: в системе обслуживания читателей имеются две ключевые абстракции — Книга и Библиотека. Класс Книга играет роль элемента, хранимого в библиотеке. Класс Библиотека играет роль хранилища для книг:
Рис. 9. Ассоциация
Отношение ассоциации между классами изображено на рис. 9. Очевидно, что ассоциация предполагает двухсторонние отношения:
• для данного экземпляра Книги выделяется экземпляр Библиотеки, обеспечивающий ее хранение;
• для данного экземпляра Библиотеки выделяются все хранимые Книги.
Здесь показана ассоциация один-ко-многим. Каждый экземпляр Книги имеет указатель на экземпляр Библиотеки. Каждый экземпляр Библиотеки имеет набор указателей на несколько экземпляров Книги. Ассоциация обозначает только семантическую связь. Она не указывает направление и точную реализацию отношения. Ассоциация пригодна для анализа проблемы, когда нам требуется лишь идентифицировать связи. С помощью создания ассоциаций мы приходим к пониманию участников семантических связей, их ролей, мощности (количества элементов). Ассоциация один-ко-многим, введенная в примере, означает, что для каждого экземпляра класса Библиотека есть 0 или более экземпляров класса Книга, а для каждого экземпляра класса Книга есть один экземпляр Библиотеки. Эту множественность обозначает мощность ассоциации. Мощность ассоциации бывает одного из трех типов: один-к-одному; один-ко-многим; многие-ко-многим.
Примеры ассоциаций с различными типами мощности :
• у европейской жены один муж, а у европейского мужа одна жена;
• у восточной жены один муж, а у восточного мужа сколько угодно жен;
• у заказа один клиент, а у клиента сколько угодно заказов;
• человек может посещать сколько угодно зданий, а в здании может находиться сколько угодно людей.
2). Наследование (Обобщение , специализация)
Наследование — это отношение, при котором один класс разделяет структуру и поведение, определенные в одном другом (простое наследование) или во многих других (множественное наследование) классах.Между п классами наследование определяет иерархию «является» («is а»), при которой подкласс наследует от одного или нескольких более общих суперклассов. Говорят, что подкласс является специализацией его суперкласса (за счет дополнения или переопределения существующей структуры или поведения).
3). Агрегация (Целое – часть)
Отношения агрегации между классами аналогичны отношениям агрегации между объектами.
По ссылке По величине (композиция)
Рис.10Агрегация классов
Зависимость
Зависимость — это отношение, которое показывает, что изменение в одном классе (независимом) может влиять на другой класс (зависимый), который использует его. Графически зависимость изображается как пунктирная стрелка, направленная на класс, от которого зависят. С помощью зависимости уточняют, какая абстракция является клиентом, а какая — поставщиком определенной услуги. Пунктирная стрелка зависимости направлена от клиента к поставщику. Наиболее часто зависимости показывают, что один класс использует другой класс как аргумент в сигнатуре своей операции.
Зависимый элемент --------------- > Независимый элемент
Полиморфизм . Полиморфизм — возможность с помощью одного имени обозначать операции из различных классов (но относящихся к общему суперклассу). Вызов обслуживания по полиморфному имени приводит к исполнению одной из некоторого набора операций
Конкретизация Г. Буч определяет конкретизацию как процесс наполнения шаблона (родового или параметризованного класса). Целью является получение класса, от которого возможно создание экземпляров. Родовой класс служит заготовкой, шаблоном, параметры которого могут наполняться (настраиваться) другими классами, типами, объектами, операциями. Он может быть родоначальником большого количества обычных (конкретных) классов. Возможности настройки родового класса представляются списком формальных родовых параметров. Эти параметры в процессе настройки должны заменяться фактическими родовыми параметрами. Процесс настройки родового класса называют конкретизацией.
|