java - UML和代码关系

标签 java jakarta-ee design-patterns uml

我理解 UML 的主要目标是沟通。 UML 旨在提供系统的设计,而代码实际上是系统的实际构建 block 。

我的问题是代码和 uml 是否应该直接相互镜像。让我解释一下:

  • 我正在开发一个 Java 程序,该程序使用 Web 服务来显示电影放映时间。
  • 到目前为止,我已经成功地使用 AWTSwing 制作了显示放映时间的简单 GUI。
  • 该程序有 16 个类,我的一个 friend 在 git 上扩展了我的代码,但他向所有类添加了以下内容。

package ShowTimesFrUSA;

我想用包图来展示我的程序和 UML 设计。然而,我已经将我的类划分为不同的包,其编码方式不同。套餐:UI (AWT and Swing) , Controllers, Moviemonitor, MovieService, USAmovies <<server>>

我只想显示代码中类组之间的依赖关系,作为本演示文稿要求的一部分,而包图非常适合这一点。但我不确定模型中的包是否应该直接反射(reflect)包在 java 中的编码方式?

最佳答案

I am unsure if the packages in the model should directly mirror the way packages are coded in java?

绝对是的。这就是 UML 包的含义。您如何看待代码是一个巨大的“上帝对象”类,但作者将其建模为 UML 中的几个不同的类?

如果您从概念上将代码划分为包,为什么您不希望使用专门用于此目的的机制将其反射(reflect)在代码中?

此外,听起来您当前根本没有使用 package 语句,即您的代码位于无名默认包中。对于除了一次性玩具代码之外的所有代码来说,这都是一个不好的做法,因为它会导致几个问题。一方面,不可能从其他使用包的代码中使用您的代码。

我认为潜在的问题可能是您误解了 UML 包。它们实际上并不是作为一个抽象标记来表明一个类是例如UI 类或 Controller 。这就是 UML 构造型的用途。

关于java - UML和代码关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43695961/

相关文章:

java - Dropwizard:无法解析配置:logging.appenders

javascript - 在java后端和javascript前端之间传输数据

spring - 在Grails中模拟帖子-Spring身份验证

java - 如何使用 Google Cloud Storage 服务在本地运行 Junits

java - 确定可能的项目组的算法

java - 登录表单 java mysql 在 netbeans 上失败

java - 遵循有关此问题的建议后,在 Mac 上仍然有 Eclipse EE 404

c++ - 避免在 for 循环中使用 if 语句?

java - 代码可读性/习惯做法/设计模式?

r - 在 r 中的数据帧中子模式,除非它包含另一个模式