uml - 当类仅用作数据类型时如何表示类的关系

标签 uml software-design class-diagram

我在画类图时找不到这个问题的确切答案。

我有一个类,其中包含属性以及用于从外部访问与该属性关联的数据的方法。

它将作为另一个属性的数据类型存在于图中的其他两个类中,另一个类将保存此类实例的数组。

What I currently have drawn

我不确定如何在图中表示这一点,我的第一个想法是组合关系,但这似乎不太正确。

最佳答案

在 UML 中,属性可以是类的属性,也可以是该类关联的拥有端。从语义上来说几乎没有区别。

因此,一个对象实例“包含”在另一个对象实例中的方式可以在 UML 图中进行解释,因为不同的语言具有不同的结构和语义来实现 object composition 。常见的技术有:

  • 如果在每种情况下都是数据类型,则关键字 «datatype»可以使用。这意味着它具有像内置类型一样的值语义。您可以使用关联或属性,并将数据类型作为类型。
  • 如果重要的是,包含的实例由包含的实例拥有并在包含的实例死亡时删除,则该组合是一个不错的候选者。
  • 在所有其他情况下,您可以简单地使用关联,最好但不一定与 dot notation 关联。在拥有端(许多流行的工具不支持该表示法)。

无论您选择什么,请记住,您最好在 UML 图中关注这些类之间的语义关系,而不是这些关系的精确实现(编程语言类中的“包含”就是)

关于uml - 当类仅用作数据类型时如何表示类的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73577155/

相关文章:

c - Q : How to handle more than one condition in a UML state machine transition

software-design - 自动刷新移动应用程序的高效设计

architecture - 有两个相同的实体不好吗?

UMLet图,例如用例,类,事件等

策略模式的 UML 类图

uml - 关联端所有权和代码生成

c - 哪个 UML 图应该用于将用 C 语言为微 Controller 编写的软件概述?

UML 图。它们什么时候使用?

java - 如何在图表中可视化大量实体?

python - 使用 Python 进行实时串行数据记录 - 设计建议