【问题标题】:UML dependency or association in class diagram类图中的 UML 依赖或关联
【发布时间】:2019-05-04 19:01:24
【问题描述】:

我的 java 项目中有 Controller 类,其方法如下:

如您所见,在第一行中,我得到了 ActualModes 类的 Singleton 实例和调用方法 getActualModes()

所以第一个问题是,我应该在类图中使用哪种关系。

之后,我正在创建 ModeContext 类的新实例,然后调用方法 executeStrategy。在这种情况下,哪种关系更好?

【问题讨论】:

  • 方法返回后不存在关系,所以也不存在关联。
  • @M. Barabas:如果您满意,请勾选一个答案是否已接受,或者解释您不满意的原因。

标签: uml class-diagram


【解决方案1】:

应该是这样的:

对单例的访问(注意只是方便且没有义务或通用标准的刻板印象)是匿名的,所以你只是有一个依赖。相比之下,ModeContext 使用名为context 的私有(我不知道您使用的语言的范围规则,所以我将其设为私有)属性。请注意那个点。

【讨论】:

    【解决方案2】:

    免责声明:UML 没有指定 Java 和 UML 之间的映射,因此您的问题的每个答案都值得商榷。

    我认为这两种关系都是依赖关系,绘制为从ControllerActualModes 和从ControllerModeContext 的虚线箭头。根据 UML 2.5 规范(§7.8.4.1)对“依赖”的定义是:

    依赖是一种关系,表示单个模型元素或一组模型元素需要其他 用于规范或实现的模型元素。

    我认为不太适合的关系类型的一个例子是关联,尽管它的定义(§11.5)非常广泛:

    关联对一组表示类型化实例之间链接的元组进行分类。 (...) 关联指定类型化实例之间可能发生的语义关系。

    有人可能会争辩说Controller 与其他两个类之间存在变量形式的联系,但这些变量是局部方法变量,仅在方法执行期间临时存在。关联代表更持久的链接,例如班级成员 - 据我了解 UML 以及我在实践中看到的关联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多