在UML类图中,是否可以表示可以具有多种类型的属性?例如,MyClass具有一个名为MyAttribute的属性。如何在类图中指定MyAttribute可以假定float或字符串类型的值?另一种选择是写MyAttribute:
(https://docs.microsoft.com/en-us/visualstudio/modeling/uml-class-diagrams-guidelines?view=vs-2015),即如果人们开始使用自己的 types ,则不指定类型但未指定类型可能会产生问题。 / p>
谢谢。
答案 0 :(得分:2)
执行此操作的一种方法是为两个不同数据类型的联合建模。您将定义一个具有两种专长的数据类型,创建一个{complete,disjoint}的泛化集,将常规数据类型抽象化,并使用该常规数据类型作为属性的类型。
您可能难以说服代码生成器将其正确映射到可以表示此构造的编程语言(例如C ++或XSD),但是UML对于任何读者都是完全清楚的。
答案 1 :(得分:1)
UML属性或属性只能具有一种类型。
因此,例如,如果要允许同时使用String和Float值,则必须使用对它们都通用的Interface(例如Object)键入属性。 但是,当然,它会不太精确,因为您允许使用其他类型的值。...
答案 2 :(得分:1)
在处理非类型化语言(例如Python)时,所有属性都不具有特定类型。在任何类型的语言中,您都可以在编译时决定属性可以采用的类型。我不知道允许将一组类型分配给任何属性的任何语言。
假设您正在谈论的是非类型化语言,则应为通常未类型化的属性添加约束,以告知类似{ must take either type A or B }
之类的内容。当然,编译器/解释器不会帮助您检查约束。