我正在为拼字游戏设计一个类图。在其中一个类中,我声明了最终变量。任何人都可以告诉我,如何在UML类图中将变量指定为final?
答案 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
中
答案 2 :(得分:1)
声明变量/属性final是实现细节。因此,您无需在CLASS Diagram中指定它,但您可以按照eboix
的建议遵循惯例。
UML规范没有具体说明它;所以你可以遵循在ALL CAPS
中显示它的惯例。