【问题标题】:In UML class diagram, should I draw a dependency from class A to B, if B is used by interface which is used by class A?在 UML 类图中,如果 B 被类 A 使用的接口使用,我应该绘制从类 A 到 B 的依赖关系吗?
【发布时间】:2021-01-16 15:19:25
【问题描述】:

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

【问题讨论】:

  • A(或其实例)通过接口获取 B 实例的方式与依赖项无关。问题是要知道 A 是否使用 B,如果是,您 can 与关键字 use有依赖关系> 从 AB 如果您认为使用足够重要,可以展示,否则不要。例如,依赖关系不是像泛化那样的“强”关系,请谨慎使用它们
  • @bruno 这是答案的开始 :-)
  • @Christophe 你会比我做得更好:-)

标签: class interface dependencies uml class-diagram


【解决方案1】:

你描述了一个类A,它使用了一个接口I,它使用了一个类B。这可能有点像:

是否应该显示 A 对 B 的依赖关系?

  • 首先,您不必展示模型中的所有潜在依赖关系,而只需要展示您认为与理解问题相关的那些。
  • 使用依赖不一定是传递性的:A 可以使用 I 而不使用 B,甚至不知道 B。你的叙述没有确定 A 和 B 之间存在直接的使用依赖,所以你不应该显示它(除非你知道有一个直接的依赖关系)。

现在定义:

Usage 是一种依赖关系,其中一个 NamedElement 需要另一个 NamedElement(或一组 NamedElements)才能完全实现或操作。用法没有指定客户如何使用供应商,除了供应商被客户的定义或实现使用。

UML 和您的设计都不需要它,但是如果您想记录实现,您可能会重新考虑依赖关系。某些语言(例如 C++)可能需要编译 A,具有 I 的定义,这需要包含 B 的定义。所以要编译 A,您可能需要知道 B。如果您认为这有助于您了解此类依赖关系,你可以展示它。这没有错,但就我个人而言,我建议只显示直接依赖关系,因为你可以很容易地推断出传递的依赖关系,而不会用大量额外的箭头弄乱图表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多