我正在为拼字游戏设计一个类图。在其中一个类中,我声明了最终变量。谁能告诉我,如何在 UML 类图中将变量指示为 final?
3 回答
final 有不同的概念,它们都以不同的方式表示:
最终定义,即它不能在子类中被覆盖 - 这对应于属性的isLeaf属性:
isLeaf属性,当对特定的 RedefinableElement 为 true 时,指定它不应有重新定义。
- UML 2.5 规范,第 99 页isLeaf=true的属性不再有官方符号;添加
{leaf}
是以前的官方表示法(UML 1.x),它仍然很常见。final value,即它的值不能改变 - 这对应于属性的isReadOnly属性:
如果一个 StructuralFeature 被标记为isReadOnly true,那么一旦它被分配了一个初始值,它就可能不会被更新。相反,当isReadOnly为 false(默认值)时,该值可能会被修改。
- UML 2.5 规范,第 106 页只读属性的表示法包括附加
{readOnly}
到属性字符串。常量通常是指类本身的不可更改属性,而不是实例(静态最终属性)。在 UML 中,它将具有上述两个属性并且另外是静态的,这对应于isStatic属性:
isStatic属性指定特性是与单独考虑的分类器实例相关(isStatic = false),还是与分类器本身相关(isStatic =true)。
- UML 2.5 规范,第 105 页静态属性通过在属性定义下划线来表示。正如已经提到的,常量通常是大写的,但这只是一个约定。
因此,总而言之,值为“x”的String类型的常量属性FOO看起来像这样,并且另外加下划线(此处不支持):
+ FOO : String = "x" {readOnly,leaf}
常量(即最终)字段通过命名约定指示:常量应为 ALL_CAPS
声明一个变量/属性 final 是实现细节。所以你不需要在你的类图中指定它,但你可以按照eboix
.
UML 规范没有具体说明它。所以你可以遵循在ALL CAPS
.