我有一个接口(interface)说
Interface ICallback {
public void informFunction();
}
我有一个类(class)说:
Class Implementation implements ICallback {
public Implementation() {
new AnotherImplementation(this);
}
@override
public void informFunction() {
// do something
}
}
现在考虑一个类,其中类实现的实例作为接口(interface)传递并用于进行回调。
Class AnotherImplementation {
public ICallback mCallback;
public AnotherImplementation(ICallback callback) {
mCallback = callback;
}
public void testFunction() {
mCallback.informFunction(); // Callback
}
}
现在我想知道如何设计 UML 类图。 最重要的是,我需要知道如何表示将在 AnotherImplementation::testFunction() 类中发生的回调功能。
最佳答案
您的代码在以下类图中表示:
表示类之间的关系:
实现
实现ICallback
Implementation
依赖于AnotherImplementation
(它在其构造函数中创建一个)AnotherImplementation
有一个ICallback
(名为 mCallback)
类图不代表方法功能。方法功能通过序列或协作图可视化。
在您的示例中,testFucntion()
的序列图非常简单:
请注意,Implementation
类未显示在序列图中。发生这种情况是因为 mCallback
成员被声明为 ICallback
。它可以是实现 ICallback
接口(interface)的任何东西。
我认为更有趣的问题是如何可视化触发回调的方法。你没有提到 Implementation
的哪个方法调用了 AnotherImplementation
的 testFunction()
,所以我猜这发生在 的构造函数中>实现
。我为此构造函数创建了以下序列图:
在这里你可以看到:
Implementation
创建AnotherImplementation
Implementation
在AnotherImplementation
上调用 AnotherImplementation
在Implementation
上调用
testFunction
informFunction
关于java - 如何在 UML 类图中表示回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20491501/