具有属性的 UML 建模枚举

2024-02-06

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

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

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;
   }
}

没有属性,很容易:

+--------------------+
|   <<enumeration>   |
|  Enumeration_type  |
+--------------------+
|  LITERAL_A         |
|  LITERAL_B         |
+--------------------+

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

+-----------------------------------------------------+
|   <<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) |
+-----------------------------------------------------+

我只找到这个例子here http://andromda.sourceforge.net/andromda-cartridges/andromda-spring-cartridge/howto5.html,但它使用 String 类属性作为枚举名称。我认为,这应该与使用不同public enum不指定枚举名称数据类型。

+-----------------------------------------+
|   <<enumeration>>                       |
|      CarType                            |
+-----------------------------------------+
|  +sedan : String = SEDAN                |
|  +liftback : String = LIFTBACK          |
|  +stationWagon : String = STATION_WAGON |
+-----------------------------------------+

我认为您无法对 UML 中每个枚举文字的属性值进行建模。
EA 对具有属性的枚举使用以下表示法:

您可以在每个文字的注释中记录属性值,也可以使用 Excel 文件或类似的文件来管理该数据。
通常,您只需要在设计时提供初始值,因为它们可能在运行时发生变化。因此,如果您不能相信这些值是正确的,那么将这些值保留在模型中就没有多大用处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有属性的 UML 建模枚举 的相关文章

  • 具有更高可见性的重写方法是良好的实践吗?

    回答这个问题 如何使用 GUI 使用 PaintComponent 初始化 GUI 然后添加基于鼠标的 GUI https stackoverflow com questions 21336141 how to gui using pain
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • UML 的 XMI 有 XSD 吗?

    是否有 UML XMI 文件的 XSD 标头仅包含名称空间引用
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 如果使用的 JVM 是 x86 或 x64,则以不同的方式解决 Maven 依赖关系?

    我设置了一个 Maven 存储库来托管一些 dll 但我需要我的 Maven 项目根据使用的 JVM 是 x86 还是 x64 下载不同的 dll 例如 在运行 x86 版本 JVM 的计算机上 我需要从存储库下载 ABC dll 作为依赖
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • 计算日期之间的天数差异

    在我的代码中 日期之间的差异是错误的 因为它应该是 38 天而不是 8 天 我该如何修复 package random04diferencadata import java text ParseException import java t
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • 尝试使用等于“是”或“否”的字符串变量重新启动 do-while 循环

    计算行程距离的非常简单的程序 一周前刚刚开始 我有这个循环用于解决真或假问题 但我希望它适用于简单的 是 或 否 我为此分配的字符串是答案 public class Main public static void main String a
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi

随机推荐

  • 滑动加载到 SimpleTarget 中,不遵守指定的宽度和高度

    我正在使用 Glide 加载图像 调整其大小并通过SimpleTarget
  • 在 Objective C (Mac OS X) 中检测 CPU 架构(32 位/64 位)运行时

    我目前正在拧一个Cocoa http en wikipedia org wiki Cocoa 28API 29需要执行一些针对 32 位和 64 位优化的 控制台 应用程序的应用程序 因此 我想检测应用程序正在运行的 CPU 架构 以便我可
  • 使用 python paramiko 进行 SSH 密钥转发

    目前 我们在桌面上运行一个脚本 使用 paramiko 来 ssh 到远程 Linux 主机 一旦我们进入远程 Linux 主机 我们就执行另一个命令来登录另一台远程计算机 我们想要做的是从 paramiko 将密钥传递到远程服务器 这样我
  • Orchard CMS 完整指南 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前正在 Orchard 中开发一个非常简单的网站 但这需要我用主题和内容类型 小部件来扩展它 现在这就是我所了解的 内容类型和小部件
  • QGridLayout,3 个窗格,无法正确扩展

    我正在尝试使用以下内容布局一个窗口 全部用代码表示 QGridLayout 我可以将小部件添加到布局中并将它们显示在我的窗口中 但我不知道如何正确调整它们的大小 这就是我想要的 Leftmost Center Rightmost 这些是我窗
  • 具有 Facebook 身份验证的 Azure 移动服务:获取用户信息

    我刚开始使用 Azure 移动服务 或任何移动开发人员 我已按照本教程为 Android 应用程序启用 Facebook 身份验证 http azure microsoft com en us documentation articles
  • 如何绕过java.nio.file.DirectoryNotEmptyException? [复制]

    这个问题在这里已经有答案了 有没有办法绕过java nio file DirectoryNotEmptyException 我希望能够删除其中包含内容的文件夹 有没有办法绕过java nio file DirectoryNotEmptyEx
  • PHP 类。如何构建将数据保存到数据库的方法

    我正在构建一个类来将数据保存到数据库 但我不知道如何处理这个问题 我的项目文件夹是这样的 Lib Models Uddt person php uris php Main class php Example usage php Models
  • 具有最大并发数的异步并发队列

    我遇到了一个自定义异步队列的错误 该队列一次调用 10 个异步函数 我正在启动包含 50 个作业的队列 一旦前 10 个作业完成 队列就会移动到后面的 10 个作业 直到完成所有作业 我遇到的错误是 一旦完成 50 个作业 它就会重新启动前
  • Linux 删除超过 1 年的文件夹和超过 3 个文件

    我正在编写一个 ant 脚本来清理存档文件夹 以下是我需要清理的方法 我需要删除超过一定天数的旧文件夹 并且其中包含超过 3 个文件 例如 如果某个文件夹已有 300 天的历史 但只有 3 个文件 则该文件夹不会被删除 我知道我可以通过 s
  • 使用记录 Haskell 进行泛型派生

    我基本上是想看看是否可以在 Haskell 中模拟 ORM 框架 这样如果用户想要创建数据库模型 他们会做这样的事情 data Car Car company String model String year Int deriving Mo
  • 从小部件启动/停止服务

    我想从小部件内部启动一项服务 我知道我可以使用 PendingIntent 来做到这一点 例如 PendingIntent intent PendingIntent getService context 0 new Intent conte
  • npm install 不能与 --prefix 一起使用

    看起来npm install prefix server 没有参数 不适用于 prefix旗帜 我只想安装 package json 中的所有软件包 该命令后我得到的只是 npm WARN enoent ENOENT 没有这样的文件或目录
  • HttpClient的默认最大连接数是多少

    HttpClient 是否使用与 HttpWebRequest 相同的 ServicePoint 连接限制 Thanks 答案并不完整 这取决于实施 在 net核心中ServicePointManager DefaultConnection
  • 在单独的程序集中使用 View 组件进行 ASP NET 5 本地化

    我有一个 类库 项目 上面有一些 ViewComponents 我已经让它们在我的 MVC 6 Web 应用程序 上工作 感谢这个问题 https stackoverflow com questions 34236850 asp net m
  • 如何使用 Python 解码 Angular 的自定义 HTML 编码

    我想抓取并解析伦敦证券交易所新闻文章 https www londonstockexchange com news article ESNT date for fy 2020 results announcement 14850033 网站
  • 如何获取 razor 视图引擎中集合中项目的元数据?

    我有一个项目写在C 位于 ASP NET MVC 5 框架的顶部 我试图将我的视图与视图模型分离 以便我可以使我的视图可重用 随着大量使用EditorTemplates我能够通过评估来创建所有标准视图 即创建 编辑和详细信息 ModelMe
  • 对大于 RAM 大小的数据进行排序

    这是谷歌面试问题 给定 2 台机器 每台机器都有 64 GB RAM 包含所有整数 8 字节 对整个 128 GB 数据进行排序 您可以假设有少量额外的 RAM 扩展此功能以对存储在 1000 台机器中的数据进行排序 我想出了外部排序 我们
  • Strongloop/loopback - 维护多个版本的 API

    我是第一次使用strongloop loopback 有一些基本的指导online https docs strongloop com display public LB Versioning your API用于 API 版本控制 var
  • 具有属性的 UML 建模枚举

    我想使用 Java 枚举 enum 创建一个 UML 图 它具有一个或多个属性 但我对如何做到这一点感到困惑 例如 可以这样声明枚举 public enum Enumeration type LITERAL A attr1 value at