Domanda

Durante la creazione di riferimenti tra entità Ecore v'è la possibilità di segnare un punto di riferimento come "contenimento". Qualcuno mi può spiegare in parole semplici che cosa è la differenza tra un riferimento chiaro e un contenimento? Le definizioni e le spiegazioni che ho trovato finora non ha fatto il trucco per me.

È stato utile?

Soluzione

Riferimento: Un riferimento è una pianura "A sa B" relazione. riferimenti separate non si influenzano a vicenda. A può conoscere B e B può conoscere C. Quindi, se avete una, si può andare a C su B. Se si rimuove il riferimento, A, B e C saranno ancora presenti, solo che non si conoscono più .

Contenimento: A contenimento è il "A ha B" tipo di rapporto. Di solito utilizzato per gli elenchi, per esempio "A ha multipla B". Ecore / EMF può quindi eseguire comandi atomici su tali raccolte, come spostare gli oggetti da un contenimento all'altro. Può anche imporre vincoli, come una quantità minima di oggetti contenuti o un importo massimo di oggetti contenuti, o la garanzia che l'oggetto contenuto non è contenuto in un altro contenitore.

Esempio:

Si supponga di avere un oggetto chiamato ShoppingCart con un riferimento chiamato Customer e un contenimento chiamato OrderedProducts. Il OrderedProducts ha un riferimento a un Product.

Che cosa significa questo modello detto?

  • È possibile assegnare un Cliente al ShoppingCart. Se si rimuove il cliente dalla ShoppingCart, l'oggetto Cliente si continuerà ad esistere (per esempio nel database)
  • Gli oggetti OrderedProduct bisogno di uno ShoppingCart di esistere. Se si rimuove uno dalla ShoppingCart, cesserà di esistere.
  • Ogni OrderedProduct ha un riferimento a un prodotto esistente nel database. Se si rimuove uno dei OrderedProducts dal ShoppingCart, il Prodotto nel database sarà ancora lì - solo l'ordine di quel prodotto per quella specifica del cliente è andato

Altri suggerimenti

Riferimento : può essere come associazione in UML

contenimento : è il rapporto di composizione da UML

Anche questo può essere visto nel diagramma EMF, se si imposta il containment true, allora la linea avrà un lato riempito, mostrando il contenimento / composizione. Questo è quello che ho osservato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top