Nan*_*han 11 java uml callback
我有一个接口说
Interface ICallback {
public void informFunction();
}
Run Code Online (Sandbox Code Playgroud)
我有一个班级说:
Class Implementation implements ICallback {
public Implementation() {
new AnotherImplementation(this);
}
@override
public void informFunction() {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
现在考虑一个类,其中Class Implementation的实例作为接口传递并用于进行回调.
Class AnotherImplementation {
public ICallback mCallback;
public AnotherImplementation(ICallback callback) {
mCallback = callback;
}
public void testFunction() {
mCallback.informFunction(); // Callback
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想知道如何设计UML类图.最重要的是,我需要知道如何表示将在类AnotherImplementation :: testFunction()中发生的回调函数.
nak*_*spy 24
您的代码在以下类图中表示:

它代表了类之间的关系:
Implementation 器物 ICallbackImplementation取决于AnotherImplementation(它在其构造函数中创建一个)AnotherImplementation有一个ICallback(名为mCallback)类图不代表方法功能.使用序列或协作图可视化方法功能.
在您的示例中,序列图testFucntion()非常简单:

请注意,Implementation该类未显示在序列图中.发生这种情况是因为该mCallback成员被声明为ICallback.它可以是实现ICallback接口的任何东西.
我认为更有趣的问题是如何可视化触发回调的方法.你没有提到Implementation调用的testFunction()方法AnotherImplementation,所以我猜这发生在构造函数中Implementation.我为这个构造函数创建了以下序列图:

在这里你可以看到:
Implementation 创造了 AnotherImplementationImplementation调用testFunction上AnotherImplementationAnotherImplementation调用informFunction上Implementation