ВУЗ:
Составители:
Рубрика:
46
Рис. 2.13. Отношение агрегации по величине (композиция)
Видим, что класс «КонтроллерУгла» является агрегатом, а экземпляр
класса «РегуляторУгла» – это одна из его частей. Агрегация здесь опреде-
лена как включение по величине. Это пример физического включения,
означающий, что объект «Регулятор» не существует независимо от вклю-
чающего его экземпляра КонтроллераУгла. Время жизни этих двух объек-
тов неразрывно связано.
Графическая иллюстрация отношения агрегации по величине (ком-
позиции) представлена на рис. 2.13.
Возможен косвенный тип агрегации – включение по ссылке. Если мы
запишем в приватной части класса «КонтроллерУгла»:
…
private
type указатель на РегуляторУгла is access all РегуляторУгла;
type КонтроллерУгла is tagged record;
регулятор: указатель на РегуляторУгла;
…
end Класс «КонтроллерУгла»;
то регулятор как часть контроллера будет доступен косвенно.
Теперь сцепление объектов уменьшено. Экземпляры каждого класса
создаются и уничтожаются независимо.
Ещё два примера агрегации по ссылке и по величине (композиции)
приведены на рис. 2.14. Здесь показаны класс-агрегат «Дом» и класс-
агрегат «Окно», причём указаны роли и множественность частей агрегата
(соответствующие пометки имеют линии отношений).
Как показано на рисунке 2.15, возможны и другие формы представ-
ления агрегации по величине – композиции. Композицию можно отобра-
зить графическим вложением символов частей в символ агрегата (левая
часть рис. 2.15). Вложенные части демонстрируют свою множественность
(мощность, кратность) в правом верхнем углу своего символа. Если метка
множественности опущена, по умолчанию считают, что её значение «мно-
го». Вложенный элемент может иметь роль в агрегате. Используется син-
таксис
роль : имя Класса.
КонтроллерУгла
РегуляторУгла
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »