回调函数/类的UML类建模

问题描述:

我并不是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

您可以通过反转.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 如果您需要添加新代码并重新使用现有的编译代码,这非常有用。

希望这会有所帮助。

只是为了记录。我们可以对类中的回调注册和调用方法进行建模。 OTOH是否需要进行更多的抽象以匹配框架组件和原型,例如,通过使用Event和Callback原型扩展Interface元类。