如果我有一个有一些函数的A类,我写了一个名为B的新类,它的目的是测试A类提供的函数,我需要检测这两个类之间的关系,可以说A和B之间的关系是依赖关系吗?
提前感谢
发布于 2015-01-29 20:48:26
绝对一点儿没错。B在某种程度上依赖于A,它将测试A的能力。您可以使用构造型(例如,这里是<<test>>
)来确定连接器的特定特征。尽管你不应该过度使用构造型。
依赖关系是UML连接器下最弱的。关联在某种程度上是更强的(例如,它在类中表示一个内部有另一个的实例)。关于何时使用哪种连接器有冗长的讨论。依赖总是好的。它表明存在一种概念关系。然后,关联显示出一种更强的关系。
发布于 2015-01-30 00:24:46
对于您的图,如果B测试A,那么箭头应该从A指向B。正如xmojmr的页面(请参阅Tom Kilian的答案的注释)所提到的,规范存在一些问题。
哪个类依赖于规范中的哪个语义不明确。这个规范很清楚:有一个客户和一个供应商。箭头端是供应商,尾端是客户。问题出在上层建筑2.4.1中的示例图中。7:
xmojmr的链接是这样的:
这个示例实际上显示了与UML相反的内容。CarFactory依赖于Car类。Car类可以在不知道CarFactory类的情况下定义,但是CarFactory需要Car作为它的定义,因为它生产汽车。
虽然我同意这个示例显示了与规范相反的评估,但我不同意对原因的解释。这是关联箭头的关注点,不是依赖箭头的关注点。依赖项箭头指向为执行指向的类提供功能的类(可以这么说)。
因此,问题在于图表中存在错误,而不是描述。Car类确实依赖于CarFactory类,这意味着箭头在错误的一端。CarFactory是Car类的实例化操作的供应商。Car类是CarFactory的客户端,使用它的实例化操作。因此,箭头应该指向CarFactory,而不是Car。
xmojmr的链接也说明了这一点,我同意:
说"...
类是CarFactory类的一个实例“也是错误的。Car类由CarFactory类实例化。
https://stackoverflow.com/questions/28215022
复制相似问题