2013-03-11 25 views
9

Temel genel bir sınıftan miras alan bir somut genel sınıf modellemeye ihtiyacım var. İlk olarak, aşağıya bakınız: Visual Studio UML Sınıf Şeması ve Genel Türlerin Modellenmesi

public class ActivityFacade : BaseFacade<Activity, int> 
{ 
} 

nasıl VS2012 UML sınıf şemasında benzetilebilir

:

enter image description here

ActivityFacade bu şekilde uygulanmalıdır? Diyagrama bakıldığında, ActivityFacade'ın BaseFacade'den miras aldığı açıktır, ancak ne olduğu belli olmayan genel tip parametrelerdir: Activity ve int.

cevap

12

Sen yeni bir bağlama sınıf (BaseFacade <Activity, int>) ekleyin bağlamak o sizin parametreli sınıfı (BaseFacade<T, TKey>) bir şablon bağlayıcı bağlayıcı ile ve daha sonra bağlayıcı sınıfından çocuğunuzun sınıfını (ActivityFacade) uzmanlaşmak gerekiyor. OMG UML şartname

itibaren

enter image description here

"Bir şablon TemplateBinding ilişkileri kullanan diğer modeli elemanlarını oluşturmak için kullanılan bir parametreli unsur ... olduğunu. Şablon imza için şablon parametreleri resmi parametrelerini belirlemek olduğunu bir bağlayıcıda gerçek parametreler (veya varsayılan) ile değiştirilecektir. "

UPDATE: dahil

diyagramıdır EA kullanılarak çekilir. Aynı kavram, Visual Studio UML aracında modellenebilir. Msdn "Template types: To use a template type" bölümüne bakın.

+0

-1: Bu bir VS2012 UML diyagramı mı? Daha fazla Sparx EA gibi görünüyor. –

+1

@JohnSaunders Önemli olan araç değil konsepttir. Sorudaki diyagram yanlıştır, çünkü ActivityFacade, BaseFacade'den değil, BaseFacade 'den miras alınmamalıdır. Burada UML'de Generics modelleme kavramını gösteriyorum. OP bir kez görsel Studio'da bulabildiği TemplateBinding'i bildiğinden eminim. – jurgenreza

+0

Soru, "Bunu bir VS2012 UML sınıf diyagramında nasıl modelleyebilirim" idi. VS2012'yi doğru şekilde modellemek için kullanabiliyorsanız, o çözümü göndermelisiniz. Aksi halde, cevabınız bu soruyla alakalı değil. –