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

Class 在UML类图中,如果B被a类使用的接口使用,我应该从a类到B类绘制依赖关系吗?,class,interface,dependencies,uml,class-diagram,Class,Interface,Dependencies,Uml,Class Diagram,如果我有一个使用接口I的类a,并且该接口返回类B,我是否应该在UML类图上从a到B绘制依赖关系?您描述一个类a,它使用接口I,它使用类B。这可能看起来有点像: 您是否应该显示a对B的依赖关系 首先,您不必显示模型中所有潜在的依赖关系,只需显示那些您认为与理解问题相关的依赖关系 使用依赖关系不一定是可传递的:A可以使用I而不使用B,甚至不知道B。您的叙述没有确定A和B之间存在直接使用依赖关系,因此您不应该显示它(除非您知道存在直接依赖关系) 现在有一个定义: 用法是一种依赖关系,其中一个Na

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

您描述一个类
a
,它使用接口
I
,它使用类
B
。这可能看起来有点像:

您是否应该显示a对B的依赖关系

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

用法是一种依赖关系,其中一个NamedElement需要另一个NamedElement(或一组NamedElement)来完成其完整实现或操作。该用法未规定客户如何使用供应商,除非客户的定义或实施使用了供应商


UML和您的设计都不需要它,但是如果您想记录实现,您可能需要重新考虑依赖关系。有些语言,如C++,可能需要编译A,以定义I,这需要包含B的定义。因此,编译A可能需要了解B.,如果你认为它能帮助你意识到这种依赖关系,你可以显示出来。这没有错,但就我个人而言,我建议只显示直接依赖项,因为您可以轻松推断可传递的依赖项,而不会在图表中添加大量额外的箭头。

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