如何将最终变量添加到类图中

时间:2013-04-27 12:59:18

标签: uml

我正在为拼字游戏设计一个类图。在其中一个类中,我声明了最终变量。任何人都可以告诉我,如何在UML类图中将变量指定为final?

3 个答案:

答案 0 :(得分:12)

最终的不同概念都以不同的方式表示:

最终定义,即无法在子类中重写 - 这对应于属性的 isLeaf 属性:

  

isLeaf:Boolean -   指示是否可以进一步重新定义RedefinableElement。如果值为true,则不可能   进一步重新定义RedefinableElement。 (UML上层建筑,第132页)

isLeaf = true 的属性没有正式表示法,但添加“{leaf}”很常见。

最终值,即无法更改其值 - 这对应于属性的 isReadOnly 属性:

  

isReadOnly:Boolean -   如果为true,则只能读取属性,而不能写入属性。默认值为false。 (UML超结构,第125页)

只读属性的表示法包括将“{readOnly}”附加到属性字符串。

常量通常是指类本身的不可更改属性而不是实例(静态最终属性)。在UML中,它将具有上面提到的两个属性,另外还是静态的,它对应于 isStatic 属性:

  

isStatic:Boolean - 指定此功能是否表征由分类器(false)或分类器分类的各个实例   本身(真实)。默认值为false。 (UML超结构,第69页)

通过为属性定义加下划线来指示静态属性。如前所述,常量通常是大写的,但这只是一种惯例。

因此,总结一下,值为“x”的 String 类型的常量属性 FOO 将如下所示并加下划线(不是这里支持):

  

+ FOO:String =“x”{readOnly,leaf}

答案 1 :(得分:10)

  

通过命名约定指示常量(即最终)字段:   常量应该在ALL_CAPS

Source

答案 2 :(得分:1)

声明变量/属性final是实现细节。因此,您无需在CLASS Diagram中指定它,但您可以按照eboix的建议遵循惯例。

UML规范没有具体说明它;所以你可以遵循在ALL CAPS中显示它的惯例。