varnimyr vanimir titulos titles net elwiki elsword elrianode elianod eclipse reference entity-relationship containment eclipse-emf-ecore

eclipse - vanimir - ¿Cuál es la diferencia en ECore entre la contención y la referencia?



https elwiki net titles (2)

Referencia: Una referencia es una simple relación "A sabe B" . Las referencias separadas no se influyen entre sí. A puede saber B y B puede saber C. Por lo tanto, si tiene A, puede ir a C sobre B. Si elimina la referencia, A, B y C seguirán existiendo, simplemente ya no se conocen entre sí. .

Contención: Una contención es el tipo de relación "A tiene B" . Normalmente se usa para listas, por ejemplo, "A tiene múltiples B". ECore / EMF puede ejecutar comandos atómicos en tales colecciones, como mover todos los objetos de una contención a otra. También puede imponer restricciones, como una cantidad mínima de objetos contenidos o una cantidad máxima de objetos contenidos, o garantizar que el objeto contenido no esté contenido en ninguna otra contención.

Ejemplo:

Suponga que tiene un objeto llamado ShoppingCart con una referencia llamada Customer y una contención llamada OrderedProducts . The OrderedProducts tiene una referencia a un Product .

¿Qué te dice este modelo?

  • Puede asignar un cliente a ShoppingCart. Si elimina el Cliente de ShoppingCart, el objeto Cliente seguirá existiendo (por ejemplo, en la base de datos)
  • Los objetos OrderedProduct necesitan un ShoppingCart para existir. Si eliminas uno de ShoppingCart, dejará de existir.
  • Cada OrderedProduct tiene una referencia a un Producto existente en la base de datos. Si elimina uno de los Productos ordenados de ShoppingCart, el Producto en la base de datos seguirá allí, solo habrá desaparecido el pedido de ese producto para ese cliente específico

Al crear referencias entre entidades ECore, existe la posibilidad de marcar una referencia como "contención". ¿Puede alguien explicarme en palabras sencillas cuál es la diferencia entre una referencia simple y una contención? Las definiciones y explicaciones que encontré hasta ahora no me sirvieron.


Referencia : puede ser como asociación en UML.

Contención : es la relación de composición de UML.

También esto se puede ver en el diagrama EMF, si establece la containment en verdadero, entonces la línea tendrá un lado relleno, mostrando la contención / composición. Esto es lo que he observado.