繁体   English   中英

UML class 图的符号

[英]Notation of UML class diagram

我有以下 class cDrawObjectCreator:

class cDrawObjectCreator
{
public:
    cDrawObjectCreator( cCompositeRoot *compositeObject ) { m_compositeRoot = compositeObject; }
   ~cDrawObjectCreator() {};
   ...
private:
    cCompositeRoot *m_compositeRoot;
};

是正确的图表吗?

在此处输入图像描述

或者下图是正确的?

在此处输入图像描述

又是第一个。 出于与上一个问题相同的原因。

请阅读 内容,了解CompostionAggregation之间的区别。

作为一般规则,聚合(空心菱形)是关联的一种特化,而组合(填充菱形)是聚合的一种特化。

请记住,建模的目的是促进沟通,因此您可以根据目的和利益相关者使用不同级别的抽象。

如果您想说 cMimicObjectCreator 拥有 cCompositeRoot 的专有所有权(即,就像人类/动物身体有大脑),那么您将使用组合(填充菱形)。 如果你想说 cMimicObjectCreator 有一个 cCompositeRoot (但不是唯一的,并且在某些情况下 class 部分不存在于整个/容器中,比如......一艘带有 GPS 设备的船),那么你将使用聚合关系。

要回答您最初的问题,我认为第一个图表更合适。 但是请记住,如果您想更“通用”,您始终可以使用关联关系代替组合或聚合关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM