【问题标题】:UML class modeling of callback functions/classes回调函数/类的 UML 类建模
【发布时间】:2015-01-25 06:10:07
【问题描述】:

我不是 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 类模型在我们学习时非常有用,但现在我很困惑。

【问题讨论】:

  • 我不确定我是否会在类图中绘制回调。类图显示类是如何相关的。我认为回调最好用序列图建模。

标签: model callback uml class-diagram


【解决方案1】:

仅作记录。可以只为类中的回调注册和调用方法建模。 OTOH 如果想要有更多的抽象来匹配框架组件和刻板印象可以使用,例如通过使用 Event 和 Callback 构造型扩展接口元类。

【讨论】:

    【解决方案2】:

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多