20

Lors de la création de références entre entités ECore, il est possible de marquer une référence comme "confinement". Quelqu'un peut-il m'expliquer en termes simples quelle est la différence entre une référence simple et un confinement? Les définitions et les explications que j'ai trouvées jusqu'ici n'ont pas fait l'affaire pour moi.Quelle est la différence de ECore entre le confinement et la référence?

Répondre

42

Référence: Une référence est une plaine "A sait B" relation. Les références séparées ne s'influencent pas mutuellement. Un peut savoir B et B peut savoir C. Donc, si vous avez A, vous pouvez aller à C sur B. Si vous supprimez la référence, A, B et C existeront toujours, ils ne se connaissent plus .

confinement: Une enceinte de confinement est la "A a B" type de relation. Habituellement utilisé pour les listes, par ex. "A a plusieurs B". ECore/EMF peut alors effectuer des commandes atomiques sur de telles collections, telles que déplacer tous les objets d'un confinement à un autre. Il peut également appliquer des contraintes, telles qu'une quantité minimale d'objets contenus ou une quantité maximale d'objets contenus, ou s'assurer que l'objet contenu n'est contenu dans aucun autre confinement.

Exemple:

Supposons que vous avez un objet appelé ShoppingCart avec une référence appelée Customer et un confinement appelé OrderedProducts. Le OrderedProducts a une référence à un Product.

Que vous dit ce modèle?

  • Vous pouvez affecter un client au panier. Si vous supprimez le client du ShoppingCart, l'objet Customer lui-même existera toujours (par exemple dans la base de données)
  • Les objets OrderedProduct nécessitent l'existence d'un objet ShoppingCart. Si vous en retirez un du ShoppingCart, il cessera d'exister.
  • Chaque OrderedProduct contient une référence à un produit existant dans la base de données. Si vous supprimez un des OrderedProducts du ShoppingCart, le produit dans la base de données sera toujours là - juste l'ordre de ce produit pour ce client spécifique est allé
+0

Merci beaucoup. Je pense qu'un exemple réel comme votre ShoppingCart était tout ce qu'il fallait pour retourner l'interrupteur dans mon cerveau. – Kosi2801

+0

Analogue à 'association' et 'composition' dans les diagrammes de classes UML. – mike

5

Référence: peut être comme association UML

confinement: est la relation de composition d'UML

aussi cela peut être vu dans le diagramme EMF, si vous réglez la containment sur true, la ligne aura un côté rempli, indiquant le confinement/composition. C'est ce que j'ai observé.

Questions connexes