Nil*_*ria 4 java diagram enums uml class
我想在 UML 枚举类型中表示一些键值对。例如,假设我们有一些元素及其符号:
ROAD => 'R'
CAR => 'C'
NOTHING => ' '
Run Code Online (Sandbox Code Playgroud)
在 Java 中,它类似于以下内容:
public enum AsciiCodes {
ROAD ('R'),
CAR ('C'),
NOTHING (' ');
private final char code;
private AsciiCodes(char code) {
this.code = code;
}
}
Run Code Online (Sandbox Code Playgroud)
我如何在 UML 中表示它?
到目前为止我所拥有的:
在 UML ROAD 中,CAR和NOTHING是EnumerationLiteral,在类图中它们显示在隔间文字中中,仅此而已。
\n作为Datatype的枚举可能具有属性,但是 Java 中的属性代码不能像您那样受属性支持,因为它不涉及枚举,而是涉及EnumerationLiteral。
\n当然,EnumerationLiteral不是枚举的属性,也不是枚举的实例,而是InstanceSpecification。
\n因此,没有任何标准允许对每个枚举文字的代码及其值进行建模,直到您通过构造型扩展枚举以将代码添加为StructuralFeature ,在这种情况下,代码的值将通过Slot指定
\n正式/2017-12-05参见:
\n[编辑]
\nUML 中的替代表示法受到阅读Christophe的答案的启发。
\n另一种方法是完全忘记 UML EnumerationLiteral,并通过静态只读属性提供的专用实例本身来对每个 Java 枚举文字进行建模。
\nAsciiCodes仍然可以是 UML 枚举。
\n\n请注意,在您的 Java 定义和上面,代码的值无法从外部获得,然后最终无用,直到添加一个操作以按照Christophe的答案中的建议返回它。
\n顺便说一句,这就是我仍然如何使用 Java 代码生成器专门管理的构造型enum_pattern在BoUML for Java插件的API 中实现枚举。我于 2005 年开始分发 BoUML,当时 Java 中还不存在枚举。
\n| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |