您不需要扩展现有的 UML 元类来创建新类型。在 UML 元模型中,定义属性 (a )通过引用Property
链接到 a 。可以附加到属性的 A可以是实例。实际上,部分 UML 基本类型只是在导入的其他模型中定义的实例(在您的 UML 模型 XMI 中查找)。Type
type
Type
Inteface/Class/PrimitiveType...
PrimitiveType
packageImport
当您将 a 的类型设置Property
为 时Integer
,您将Property
实例的类型设置PrimitiveType
为名为 的实例Integer
。所以如果你想要一个HashMap
类型,你只需要创建一个PrimitiveType
命名的实例HashMap
(就像你所做的那样),仅此而已。
但是,当您将模型“绑定”到 Java 时,我怀疑您可能想要对泛型类型进行建模(HashMap<String, Integer>
例如)。为此,您必须处理 UML 模板。
http://www.uml-diagrams.org/template.html
在这种情况下,您将必须创建一个Class
具有两个名为的形式参数的模板HashMap
并绑定它以生成绑定类型。然后,您将能够使用绑定类型作为Property
实例的类型(也不需要 UML 元模型扩展)。
注意:
PrimitiveType
是一个 UML 元类。您可以使用构造型(假设A
在这里)对其进行扩展,以创建更精致的PrimitiveType
元类。如果您这样做,在您的 UML 模型中,您将能够创建A
实例,但您将无法A
用作Property
类型。您将能够使用的唯一对象将是创建的A
实例。