方法参数的 UML 图

Mag*_*s W 2 c++ uml class-diagram aggregation

假设我有以下代码:

class A {
public:
    void doSomething(B* b);
}

class B {
}
Run Code Online (Sandbox Code Playgroud)

我将如何在 UML 图中描述这一点?我的第一个想法是 A 使用 B,所以从 A 到 B 应该有一条虚线。 但是在一些学校论文中(这是学校作业报告中很小的一部分),他们似乎使用了聚合符号(空菱形和实线)。

这对我来说似乎不对——如果 A 实际上包含一个指向 B 的指针作为成员,那似乎是对的。但是当只有某些方法使用指向 B 的指针,并且不将其存储在任何成员变量中时,这似乎是错误的。

这里有什么?

(我可以问我的老师,但他们通常需要很长时间才能回答此类问题……老实说,我更信任 Stackoverflow 的集体智囊团 :))

qwe*_*_so 5

您应该在 A 和 B 之间使用简单的依赖关系:

在此处输入图片说明

A 只是在操作中使用 B 作为参数。如果您有一些 B 类型的属性,那么您将使用关联。聚合只提供了一点额外的语义,您可以(/应该)将其省略,除非您知道要传输某些特定信息。