Главная » Delphi » Delphi 2006 – Организация связей между объектами ЕСО

0

Добавляем ассоциативную связь

В реальных проектах взаимосвязи между объектами модели гораздо сложнее, нежели в нашем примере. Помимо связей вертикального наследования очень часто возникают горизонтальные взаимосвязи. Если «звезды» могут существовать в рамках нашей маленькой модели сами по себе, то каждая «планета» должна быть обязательно связана с определенной «звездой», вокруг которой она вращается.

Перейдем к модели, выделим на диаграмме UML элемент Planet и с помощью инструмента Association свяжем его с элементом Star. Так формируется ассоциативная связь между классами Star и Planet. Далее ее надо выделить и настроить с помощью Инспектора объектов.

В свойстве Name ассоциативной связи введем строку ascTos tar. Под таким именем данная связь будет доступна в программе. Теперь надо указать, что эта связь направленная: ведь у одной звезды может быть произвольное число планет, а у одной планеты — только одна звезда. Для этого уточним значения свойств End1 и End2 связи ascToStar. Свойство End1 соответствует стороне связи, относящейся к классу Planet, а свойство End2 — стороне класса Star.

Дадим собственное имя стороне связи End1. В ее вложенном свойстве Name введем строку Planets. Кроме того, изменим вид связи стороны End1. В свойстве Multiplicity (Кратность) зададим форму отношения «многие к одному» — «0..*». Такая кратность означает, что одному экземпляру класса Star может соответствовать произвольное количество экземпляров класса Planet.

Откорректируем кратность также для стороны End2. Назначим для ее свойства Multiplicity значение 1. Это означает, что каждому экземпляру класса Planet может соответствовать один и только один экземпляр класса Star. Названием стороны End2 (значением свойства Name) пусть будет строка Stars (рис. 9.11).

Рис. 9.11. Задаем ассоциативную связь между классами

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии