我想为下面的例子画一个序列图。
我知道当有函数调用交互进行数据交换时可以使用消息行。 但在这种情况下,没有定义读取函数接口(interface),因为目标变量被定义为全局变量,以便共享给其他想要读取的组件。我认为在设计过程中必须描述组件之间的所有数据流,而不考虑它是否通过函数接口(interface)。我相信它将向其他低级组件设计者提供有关共享变量的清晰信息。
有没有办法在序列图中直接绘制共享变量?
以下是我在代码中的示例解释,我想要描述的是 A 和 B 之间使用的 variable_a
。
A.h
extern unsigned char variable_a;
A.c
unsigned char variable_a;
void func_A(void)
{
variable_a = input();
}
B.c
#include "A.h"
void func_B(void)
{
if(variable_a >= 100)
{
//do something
}
else
{
//do something
}
}
最佳答案
全局变量是一个对象,可以显示为单独的生命线。例如,可以使用 get
和 set
消息来公开对对象的访问。
备注:这种技术可能被视为乏味或矫枉过正,但它的优点是准确且可视化本来会隐藏的耦合。顺便说一句,它还鼓励良好的实践:涉及的全局变量越少,额外的生命线就越少;-)
附加提示:您可能还对this other question感兴趣。关于如何了解参与交互的对象。
关于global-variables - 如何在序列图中通过全局变量表达交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72036573/