2010-09-08 163 views
0

我並不是UML方面的專家,我剛剛畢業之前花了大量的時間在UML建模上。我瞭解基礎知識,但是我前幾天正在做一個項目,只是爲了自己的好奇心,我想知道如何爲回調建模。下面是我對回調函數/類的UML類建模

 

class OnChangeHandler(): 

    def my_init(self, rem, loc): 
     self.remotes = rem 
     self.locals = loc 

    def process_IN_CREATE(self, event): 
     #Do some work 

    def process_IN_MODIFY(self, event): 
     #Do some other work 
 
 

class Watch(): 
    def __init__(self): 

     self.wm = WatchManager() 
     self. notifier = AsyncNotifier(self.wm, OnChangeHandler(loc=self.locals, rem=self.remotes)) 
 

工作我使用了一個框架顯然是代碼的一部分,所以我想我的問題歸結爲如何將你的模型複雜的關係,你與黑匣子工作模塊和框架?這是否值得花時間?但如果是這樣,是不是框架內的大多數程序?我發現UML類模型在學習時非常有用,但現在我只是感到困惑。

+1

我不確定我會在類圖中繪製回調圖。類圖顯示了類是如何相關的。我認爲回調最好用序列圖建模。 – 2010-09-09 02:38:01

回答

-1

您可以通過反轉.class來反轉框架以獲得類圖。

請參閱框架反向示例:http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html 該類圖將給出應用程序及其體系結構的視圖。

序列圖也可以用來理解運行應用程序時發生了什麼。它有助於更​​好地理解.java類如何與框架.class類反應。查看示例:http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html#3.Sequence_Diagram_reverse_engineering 如果您需要添加新代碼並重新使用現有的編譯代碼,這非常有用。

希望這會有所幫助。

0

只是爲了記錄。我們可以對類中的回調註冊和調用方法進行建模。 OTOH是否需要進行更多的抽象以匹配框架組件和原型,例如,通過使用Event和Callback原型擴展Interface元類。