Java 如何在UML类图中表示回调

Java 如何在UML类图中表示回调,java,callback,uml,Java,Callback,Uml,我有一个接口说 Interface ICallback { public void informFunction(); } 我有一个班说: Class Implementation implements ICallback { public Implementation() { new AnotherImplementation(this); } @override public void informFunction() { //

我有一个接口说

Interface ICallback {
    public void informFunction();
}
我有一个班说:

Class Implementation implements ICallback {

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

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

}

现在考虑一个类,它在类实现的实例中作为接口传递并用于进行回调。

Class AnotherImplementation {
   public ICallback mCallback;

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

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

现在我想知道如何设计UML类图最重要的是,我需要知道如何表示将在类AnotherImplementation::testFunction()中发生的回调功能。

您的代码在以下类图中表示:

它表示类之间的关系:

  • Implementation
    implements
    ICallback
  • 实现
    依赖于另一个实现(它在其构造函数中创建一个)
  • 另一个实现
    有一个
    ICallback
    (名为mCallback)
类图不表示方法功能。方法功能通过序列图或协作图可视化

在您的示例中,
testfunction()
的序列图非常简单:

请注意,
实现
类没有显示在序列图中。这是因为
mCallback
成员被声明为
ICallback
。它可以是实现
ICallback
接口的任何东西

我认为更有趣的问题是如何可视化触发回调的方法。您没有提到
实现的哪个方法调用
另一个实现的
testFunction()
,所以我猜这发生在
实现的构造函数内部。我为此构造函数创建了以下序列图:

在这里你可以看到:

  • 实现
    创建另一个实现
  • 实现
    另一个实现
  • 另一个实现
    实现

  • 类图和解释非常棒。您能告诉我您使用了什么工具来创建/生成这个类图吗。