问题描述
如果我有一个类 A 使用某个接口 I,并且该接口返回类 B,我是否应该在 UML 类图中绘制从 A 到 B 的依赖关系?
解决方法
您描述了一个类 A
,它使用了一个接口 I
,它使用了一个类 B
。这可能看起来有点像:
你应该展示 A 对 B 的依赖吗?
- 首先,您没有义务显示模型中的所有潜在依赖项,而只显示您认为与理解问题相关的那些依赖项。
- 用法依赖不一定是可传递的:A 可以在不使用 B 的情况下使用 I,甚至不知道 B。您的叙述并没有证明 A 和 B 之间存在直接的用法依赖,因此您不应该展示它(除非您知道存在直接依赖关系)。
现在定义:
Usage 是一个依赖项,其中一个 NamedElement 需要另一个 NamedElement(或 NamedElements 集)来实现其完整的实现或操作。用法没有指定客户如何使用供应商,除了供应商被客户的定义或实现所使用的事实。
它不是 UML 所必需的,也不是您的设计所必需的,但是如果您想记录实现,您可能会重新考虑依赖关系。某些语言(例如 C++)可能需要编译 A 来定义 I,这需要包含 B 的定义。因此,要编译 A,您可能需要了解 B。如果您认为这会帮助您了解此类情况依赖,你可以展示它。这没有错,但就我个人而言,我建议只显示直接依赖关系,因为您可以轻松推导出传递依赖关系,而不会用大量额外的箭头使图表混乱。