在UML类图中,如果B被类A使用的接口使用,我应该从A类到B类绘制依赖关系吗?

问题描述

如果我有一个类 A 使用某个接口 I,并且该接口返回类 B,我是否应该在 UML 类图中绘制从 A 到 B 的依赖关系?

解决方法

您描述了一个类 A,它使用了一个接口 I,它使用了一个类 B。这可能看起来有点像:
enter image description here

你应该展示 A 对 B 的依赖吗?

  • 首先,您没有义务显示模型中的所有潜在依赖项,而只显示您认为与理解问题相关的那些依赖项。
  • 用法依赖不一定是可传递的:A 可以在不使用 B 的情况下使用 I,甚至不知道 B。您的叙述并没有证明 A 和 B 之间存在直接的用法依赖,因此您不应该展示它(除非您知道存在直接依赖关系)。

现在定义:

Usage 是一个依赖项,其中一个 NamedElement 需要另一个 NamedElement(或 NamedElements 集)来实现其完整的实现或操作。用法没有指定客户如何使用供应商,除了供应商被客户的定义或实现所使用的事实。

它不是 UML 所必需的,也不是您的设计所必需的,但是如果您想记录实现,您可能会重新考虑依赖关系。某些语言(例如 C++)可能需要编译 A 来定义 I,这需要包含 B 的定义。因此,要编译 A,您可能需要了解 B。如果您认为这会帮助您了解此类情况依赖,你可以展示它。这没有错,但就我个人而言,我建议只显示直接依赖关系,因为您可以轻松推导出传递依赖关系,而不会用大量额外的箭头使图表混乱。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...