20

ECore kuruluşları arasında referanslar oluştururken, bir referansı "içerme" olarak işaretleme olasılığı vardır. Birisi bana kolay kelimelerle açık bir referans ve bir muhafaza arasındaki farkın ne olduğunu açıklayabilir mi? Şimdiye kadar bulduğum tanım ve açıklamalar benim için hile yapmadı.ECore'daki muhafaza ve referans arasındaki fark nedir?

cevap

42

Referans: Referans bir "A knows B" ilişkisidir. Ayrı referanslar birbirini etkilemez. Bir B ve B'nin B'yi bildiğini biliyoruz. Bu nedenle, eğer A'nız varsa, C'nin üzerinde B'ye gidebilirsiniz. Eğer referansı kaldırırsanız, A, B ve C hala var olacaklar, artık birbirlerini tanımıyorlar .

Containment: bir muhafaza ilişkisi tür "A B sahiptir" dir. Genellikle listeler için kullanılır, ör. "A'nın birden fazla B'si var". ECore/EMF, daha sonra, tüm nesneleri bir muhafazadan diğerine taşımak gibi atomik komutlar gerçekleştirebilir. Ayrıca, minimum miktarda bulunan nesneler veya azami miktarda içerilen nesneler gibi kısıtlamaları da uygulayabilir veya içerilen nesnenin başka bir muhafazada bulunmadığından emin olabilir.

Örnek:

Eğer Customer adı verilen bir referans ve OrderedProducts adı verilen bir muhafazası olan ShoppingCart adı verilen bir nesne olduğunu varsayalım. OrderedProducts, Product referansına sahiptir.

Bu model size ne anlatıyor?

  • Alışveriş Merkezine bir Müşteri atayabilirsiniz. Müşteri'yi ShoppingCart'tan kaldırırsanız, Müşteri nesnesinin kendisi (örneğin, veritabanında) var olacaktır.
  • Sipariş EdilenÜrün nesneleri, var olmak için bir ShoppingCart'a ihtiyaç duyar. ShoppingCart'tan bir tane çıkarırsanız, varolmaya son verilir.
  • Her Sipariş Edilen Ürün'ün, veritabanındaki mevcut bir Ürüne bir referansı vardır. Eğer shoppingcart gelen OrderedProducts birini kaldırırsanız, veritabanında Ürün hala orada olacak - gittiğine göre belirli bir müşteri için bu ürünün sadece sipariş
+0

Çok teşekkürler. Ben ShoppingCart gibi gerçek bir örnek beynimde anahtarı çevirmek için gereken tüm olduğunu düşünüyorum. – Kosi2801

+0

UML sınıf diyagramlarında 'ilişki' ve 'kompozisyon' ile benzer. – mike

5

Referans: UML

yılında dernek gibi olabilir

Engelleme: Eğer muhafaza/bileşim gösteren containment doğru, daha sonra hat doldurulmuş bir kenarlarının olacağı ayarlanır Ayrıca bu EMF diyagramda görüldüğü

UML

bileşimden bir ilişkidir. Gözlemlediğim bu.

İlgili konular