我在画类图时找不到这个问题的确切答案。
我有一个类,其中包含属性以及用于从外部访问与该属性关联的数据的方法。
它将作为另一个属性的数据类型存在于图中的其他两个类中,另一个类将保存此类实例的数组。
我不确定如何在图中表示这一点,我的第一个想法是组合关系,但这似乎不太正确。
最佳答案
在 UML 中,属性可以是类的属性,也可以是该类关联的拥有端。从语义上来说几乎没有区别。
因此,一个对象实例“包含”在另一个对象实例中的方式可以在 UML 图中进行解释,因为不同的语言具有不同的结构和语义来实现 object composition 。常见的技术有:
- 如果在每种情况下都是数据类型,则关键字
«datatype»
可以使用。这意味着它具有像内置类型一样的值语义。您可以使用关联或属性,并将数据类型作为类型。 - 如果重要的是,包含的实例由包含的实例拥有并在包含的实例死亡时删除,则该组合是一个不错的候选者。
- 在所有其他情况下,您可以简单地使用关联,最好但不一定与 dot notation 关联。在拥有端(许多流行的工具不支持该表示法)。
无论您选择什么,请记住,您最好在 UML 图中关注这些类之间的语义关系,而不是这些关系的精确实现(编程语言类中的“包含”就是)
关于uml - 当类仅用作数据类型时如何表示类的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73577155/