首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有属性的UML建模枚举

带有属性的UML建模枚举
EN

Stack Overflow用户
提问于 2016-05-11 09:57:43
回答 2查看 2.6K关注 0票数 10

我想用Java枚举(enum)创建一个UML图,它具有一个或多个属性,但我对如何实现它感到困惑。

例如,可以这样声明枚举:

代码语言:javascript
运行
复制
public enum Enumeration_type {

   LITERAL_A("attr1_value", attr2_value, attr3_value),
   LITERAL_B("attr1_value", attr2_value, attr3_value);

   final String attr1;
   final type_1 attr2 = initial_value_1;
   final type_2 attr3;

   Enumeration_type(String attr1, type_1 attr2, type_2 attr3) {
      this.attr1_value = attr1;
      this.attr2_value = attr2;
      this.attr3_value = attr3;
   }
}

如果没有这些属性,就很容易:

代码语言:javascript
运行
复制
+--------------------+
|   <<enumeration>   |
|  Enumeration_type  |
+--------------------+
|  LITERAL_A         |
|  LITERAL_B         |
+--------------------+

但是,如何用优雅的属性对其建模呢?应该是这样吗?

代码语言:javascript
运行
复制
+-----------------------------------------------------+
|   <<enumeration>>                                   |
|  Enumeration_type                                   |
+-----------------------------------------------------+
|  attr1: String                                      |
|  attr2: type_1 = initial_value_1                    |
|  attr2: type_2                                      |
+-----------------------------------------------------+
|  LITERAL_A("attr1_value", attr2_value, attr3_value) |
|  LITERAL_B("attr1_value", attr2_value, attr3_value) |
+-----------------------------------------------------+

我只找到了这个示例这里,但它使用String类属性作为枚举名称。我认为,这应该不同于使用public enum而不指定枚举名称数据类型。

代码语言:javascript
运行
复制
+-----------------------------------------+
|   <<enumeration>>                       |
|      CarType                            |
+-----------------------------------------+
|  +sedan : String = SEDAN                |
|  +liftback : String = LIFTBACK          |
|  +stationWagon : String = STATION_WAGON |
+-----------------------------------------+
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-13 11:01:01

我认为您不能为UML中的每个枚举文本建模属性值。

EA对具有属性的枚举使用以下表示法:

您可以在每个文字的注释中记录属性值,也可以使用excel文件或类似的东西来管理该数据。

通常,您只需要在设计时提供初始值,因为它们在运行时可能会更改。因此,如果您不能相信这些值是正确的,那么在您的模型中保留这些值是没有多大用处的。

票数 5
EN

Stack Overflow用户

发布于 2016-05-19 07:01:10

您可以使用正式文档http://www.omg.org/spec/UML/2.5以正式方式描述您的类。在11.4.4节中,您将看到如下示例:

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37159109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档