如果我有一个具有一些功能的A类,我写了一个名为B的新类,其目的是测试A类提供的功能,我需要检测两类之间的关系,可以这么说吗A和B之间的关系是依赖关系吗?
提前谢谢
答案 0 :(得分:3)
绝对。 B依赖于A来测试A的能力。您可以使用构造型(例如此处<<test>>
)来查明连接器的特定特征。虽然你不应该过度使用刻板印象。
依赖关系是UML连接器下最弱的。关联有点强(例如,它在类中表示一个内部具有另一个的实例)。有什么时候讨论使用哪个连接器。依赖总是好的。它表明存在概念上的关系。一个协会显示出一种更强烈的关系。
答案 1 :(得分:0)
关于你的图表,如果B测试A,那么箭头应该从A指向B.作为xmojmr的页面(参见Tom Kilian的回答)提到,有一些问题规范。
哪个类依赖于规范中语义模糊的哪个类。规范很清楚:有一个客户和一个供应商。箭头端是供应商,尾端是客户端。问题在于上层建筑 2.4.1中的示例图,图。 7:
xmojmr的链接说明了这一点:
这个例子实际上与UML规范所说明的相反。 CarFactory取决于Car类。可以在不知道CarFactory类的情况下定义Car类,但是CarFactory需要Car来定义它,因为它生成Cars。
虽然我同意这个例子显示与规范相反的评估,但我不同意对原因的解释。哪个知道哪个与此无关;这是关联箭头的关注点,而不是依赖关系箭头。依赖关系箭头指向为进行指向的类提供功能的类(可以这么说)。
因此,问题是图中有错误,而不是描述。 Car类确实依赖于CarFactory类,这意味着箭头位于错误的一端。 CarFactory是Car类的实例化操作的供应商。 Car class是CarFactory的客户端,使用其实例化操作。因此,箭头应指向CarFactory,而不是Car。
xmojmr的链接也说明了这一点,我同意:说&#34; ... Car类是CarFactory类的一个实例也是错误的。&#34; Car类由CarFactory类实例化。