封じ込めと参照の間のエコールの違いは何ですか?
-
05-10-2019 - |
質問
Ecoreエンティティ間で参照を作成するとき、参照を「封じ込め」としてマークする可能性があります。誰かが簡単な言葉で私を説明できますか?私がこれまでに見つけた定義と説明は、私にとってトリックをしませんでした。
解決
参照: 参照は平野です 「bを知っている」 関係。個別の参照は互いに影響を与えません。 AはBとBを知ることができます。Cを知ることができます。したがって、Aがある場合、Bを介してCに行くことができます。参照を削除すると、A、B、Cがまだ存在しますが、彼らはもうお互いを知りません。 。
封じ込め: 封じ込めはです 「AはBを持っています」 一種の関係。通常、リストに使用されます。たとえば、「Aには複数のB」です。 ECORE/EMFは、すべてのオブジェクトをある封じ込めから別のオブジェクトに移動するなど、そのようなコレクションでアトミックコマンドを実行できます。また、最小量の含まれるオブジェクトや最大量の含有オブジェクトなど、制約を強制することも、含まれているオブジェクトが他の封じ込めに含まれていないことを確認することもできます。
例:
あなたが呼ばれるオブジェクトがあると仮定します ShoppingCart
呼ばれるリファレンス付き Customer
と呼ばれる封じ込め OrderedProducts
. 。 OrderedProducts
aへの参照があります Product
.
このモデルは何を教えてくれますか?
- 顧客をショッピングカートに割り当てることができます。 ShoppingCartから顧客を削除すると、顧客オブジェクト自体が引き続き存在します(たとえば、データベースに)
- 注文された製品オブジェクトは、存在するためにショッピングカートを必要とします。ショッピングカートから削除すると、存在しなくなります。
- 各注文された製品には、データベース内の既存の製品への参照があります。ショッピングキャートから注文された製品の1つを削除すると、データベース内の製品はまだそこにあります - その特定の顧客の製品の注文はなくなりました
他のヒント
参照 :UMLの関連性のようなものにすることができます
封じ込め :UMLの構成関係です
また、これはEMF図で見ることができます。 containment
本当の場合、ラインは埋め込み/構成を示し、埋め込まれた側面を持っています。これが私が観察したことです。