2013-12-10 19 views
7

demek UML Sınıf Diyagramı içinde geri arama temsil etmek nasıl bir sınıf varBir Arayüz var

Interface ICallback { 
    public void informFunction(); 
} 

ki:

Class Implementation implements ICallback { 

    public Implementation() { 
     new AnotherImplementation(this); 
    } 

    @override 
    public void informFunction() { 
     // do something 
    } 

} 

Şimdi Sınıf Uygulama örneğinde olduğu gibi geçirilen bir sınıf düşünün Bir arayüz ve bir geri arama yapmak için kullanılır.

Class AnotherImplementation { 
    public ICallback mCallback; 

    public AnotherImplementation(ICallback callback) { 
     mCallback = callback; 
    } 

    public void testFunction() { 
    mCallback.informFunction(); // Callback 
    } 
} 

Şimdi bir UML Sınıf Diyagramı nasıl tasarlayabileceğimi bilmek istiyorum. En önemlisi, Class AnotherImplementation :: testFunction() 'da meydana gelen Geri Çağırma İşlevselliğini nasıl temsil edeceğimi bilmem gerekiyor.

cevap

16
Kodunuz aşağıdaki sınıf ki şemada

:

enter image description here

Bu sınıflar arasındaki ilişkileri temsil eder:

  • Implementation uygulayan ICallback
  • ImplementationAnotherImplementation bağlıdır (it kurucusunda bir tane oluşturur)
  • AnotherImplementation bir ICallback (mCallback adlandırılır)

bir sınıf bir diyagram temsil etmez yöntem özelliğe sahiptir. Metot işlevselliği bir dizi veya bir İşbirliği diyagramı ile görselleştirilir. Örnekte

, testFucntion() için sıra diyagramı çok basittir: Implementation sınıf dizisi şemasında göstermiyor

sequence diagram

Not söyledi. Bu, mCallback üye ICallback olarak bildirildiğinden oluşur. ICallback arabirimini uygulayan her şey olabilir.

Bence daha ilginç olan soru, geri bildirimi tetikleyen yöntemi görselleştirmek. Implementation'un hangi yönteminin AnotherImplementation'un testFunction() olduğunu belirtmediğinizden, bu durumun Implementation yapıcısının içinde olduğunu tahmin ediyorum.

İşte

callback sequence

Gördüğünüz:

  1. ImplementationAnotherImplementation
  2. ImplementationAnotherImplementation
  3. AnotherImplementation üzerinde testFunction çağırır oluşturur Implementation üzerinde informFunction çağırır Ben bu kurucu için aşağıdaki dizi diyagramı oluşturulmuş