在 UML class 图中,如果 B 被 class A 使用的接口使用,我是否应该绘制从 class A 到 B 的依赖关系?
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?
如果我有一个 class A 使用一些接口 I,那个接口 returns class B,我应该在 UML 上绘制从 A 到 B 的依赖关系 class图?
您描述了一个 class A
,它使用一个接口 I
,它使用一个 class B
。这看起来有点像:
你应该显示 A 对 B 的依赖关系吗?
- 首先,您没有义务显示模型中所有潜在的依赖关系,而只显示您认为与理解问题相关的那些。
- 使用依赖不一定传递:A可以使用I而不使用B,甚至不知道B。你的叙述没有证明A和B之间存在直接的使用依赖,所以你不应该表现出来(除非您知道存在直接依赖关系)。
现在定义:
A Usage is a Dependency in which one NamedElement requires another NamedElement (or set of NamedElements) for its full implementation or operation. The Usage does not specify how the client uses the supplier other than the fact that the supplier is used by the definition or implementation of the client.
UML 和您的设计都不需要它,但如果您想记录实现,您可能需要重新考虑依赖关系。某些语言(例如 C++)可能需要编译 A,以包含 I 的定义,而这需要包含 B 的定义。因此,要编译 A,您可能需要了解 B。如果您认为这有助于您了解此类信息依赖关系,你可以展示它。这并没有错,但就我个人而言,我建议只显示直接依赖关系,因为您可以轻松推断出传递依赖关系,而不会用大量额外的箭头使图表混乱。
如果我有一个 class A 使用一些接口 I,那个接口 returns class B,我应该在 UML 上绘制从 A 到 B 的依赖关系 class图?
您描述了一个 class A
,它使用一个接口 I
,它使用一个 class B
。这看起来有点像:
你应该显示 A 对 B 的依赖关系吗?
- 首先,您没有义务显示模型中所有潜在的依赖关系,而只显示您认为与理解问题相关的那些。
- 使用依赖不一定传递:A可以使用I而不使用B,甚至不知道B。你的叙述没有证明A和B之间存在直接的使用依赖,所以你不应该表现出来(除非您知道存在直接依赖关系)。
现在定义:
A Usage is a Dependency in which one NamedElement requires another NamedElement (or set of NamedElements) for its full implementation or operation. The Usage does not specify how the client uses the supplier other than the fact that the supplier is used by the definition or implementation of the client.
UML 和您的设计都不需要它,但如果您想记录实现,您可能需要重新考虑依赖关系。某些语言(例如 C++)可能需要编译 A,以包含 I 的定义,而这需要包含 B 的定义。因此,要编译 A,您可能需要了解 B。如果您认为这有助于您了解此类信息依赖关系,你可以展示它。这并没有错,但就我个人而言,我建议只显示直接依赖关系,因为您可以轻松推断出传递依赖关系,而不会用大量额外的箭头使图表混乱。