类图中有多种类型的属性

问题描述 投票:2回答:3

在UML类图中,是否可以表示可以有多种类型的属性?例如,MyClass有一个名为MyAttribute的属性。如何在类图中指定MyAttribute可以采用浮点数或字符串类型值?另一种选择是编写MyAttribute:https://docs.microsoft.com/en-us/visualstudio/modeling/uml-class-diagrams-guidelines?view=vs-2015),即不指定类型,但如果人们开始使用自己的类型,则不指定类型可能会产生问题。

提前致谢。

uml class-diagram
3个回答
2
投票

一种方法是为两种不同数据类型的并集建模。您将定义具有两个特化的数据类型,创建一个{complete,disjoint}的泛化集,使一般数据类型为abstract,并使用一般数据类型作为属性的类型。

您可能无法说服代码生成器将此映射正确地映射到编程语言,例如C ++或XSD,它们都可以代表此构造,但UML对于任何读者都是非常清楚的。


1
投票

UML属性或属性只能有一种类型。

因此,例如,如果您想要同时允许String和Float值,则必须使用与它们相同的接口来键入属性,例如Object。但是,当然,它会不那么精确,因为你允许其他类型的价值......


1
投票

当您处理非类型语言(例如Python)时,您的属性都没有特定类型。在任何类型语言中,您在编译时决定属性可以采用哪种类型。我不知道任何允许将一组类型分配给任何属性的语言。

假设您正在谈论无类型语言,您可以为通常无类型的属性添加一个约束,告诉像{ must take either type A or B }这样的东西。当然,编译器/解释器不会帮助您检查约束。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.