Вопрос

При создании ссылок между объектами ECORE есть возможность отметить ссылку как «сдерживание». Может кто-нибудь объяснить мне в простых словах, в чем разница между простой ссылкой и сдерживанием? Определения и объяснения, которые я нашел до сих пор, не сделал для меня трюк.

Это было полезно?

Решение

Ссылка: Ссылка это просто "A знает б" связь. Отдельные ссылки не влияют друг на друга. A может знать B и B может знать C. Следовательно, если у вас есть, вы можете перейти к C более чем B. Если вы удалите ссылку, A, B и C все равно существуют, они просто не знают друг друга Отказ

Сдерживание: Сдерживание - это "А имеет б" Вид отношения. Обычно используется для списков, например, «A имеет несколько B». ECORE / EMF может затем выполнять атомные команды на таких коллекциях, таких как перемещение всех объектов из одной защиты в другой. Он также может применять ограничения, такие как минимальное количество содержащихся содержащихся объектов или максимальное количество содержащихся объектов или обеспечение того, чтобы содержащийся объект не содержался в каком-либо другом сдержите.

Пример:

Предположим, у вас есть объект под названием ShoppingCart со ссылкой ссылаться Customer и сдерживание называется OrderedProducts. Отказ То OrderedProducts имеет ссылку на Product.

Что эта модель говорит вам?

  • Вы можете назначить заказчику магазин. Если вы удалите клиента из ShoppingCart, сам объект клиента все еще будет существовать (например, в базе данных)
  • Предметы упорядоченной продукции нужны покупки для существования. Если вы удалите один из Корзината, он перестанет существовать.
  • Каждый заказProduct имеет ссылку на существующий продукт в базе данных. Если вы удалите один из упорядоченных продуктов из Корзакварта, продукт в базе данных все равно будет там - просто порядок этого продукта для этого конкретного клиента

Другие советы

Ссылка : Может быть как объединение в UML

Сдерживание : это отношение композиции от UML

Также это можно увидеть на диаграмме ЭДС, если вы установите containment Действительно, то линия будет иметь заполненную сторону, показывая содержание / композицию. Это то, что я наблюдал.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top