方法参数的UML图

时间:2016-03-04 12:03:14

标签: c++ uml aggregation class-diagram

我们说我有以下代码:

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

class B {
}

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

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

这里有什么?

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

2 个答案:

答案 0 :(得分:4)

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

enter image description here

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

答案 1 :(得分:1)

class Aclass B之间不应该有任何箭头。类之间的箭头用于表示“关联”。

  

关联表示您正在开发的系统存储   相关类型的实例之间的某种链接。

来源:Properties of associations on UML class diagrams

要捕获/代表void doSomething(B* b);,您可以尝试使用活动图,有关详情,请参阅this link