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 的集体智囊团 :))
您应该在 A 和 B 之间使用简单的依赖关系:
A 只是在操作中使用 B 作为参数。如果您有一些 B 类型的属性,那么您将使用关联。聚合只提供了一点额外的语义,您可以(/应该)将其省略,除非您知道要传输某些特定信息。