根据维基百科
依赖关系是一种关系,它表明一个元素或一组元素需要其他模型元素来进行规范或实现。 [1] 该元素依赖于称为供应商的独立元素。
那么它与单向关联不一样吗?当一个类中的操作使用另一个类的对象作为其参数时,我们是否使用依赖关系?
单向关联和依赖有何不同。任何例子都会很有帮助
根据维基百科
依赖关系是一种关系,它表明一个元素或一组元素需要其他模型元素来进行规范或实现。 [1] 该元素依赖于称为供应商的独立元素。
那么它与单向关联不一样吗?当一个类中的操作使用另一个类的对象作为其参数时,我们是否使用依赖关系?
单向关联和依赖有何不同。任何例子都会很有帮助
依赖:
表示客户元素(任何类型,包括类、包、用例等)了解另一个供应商元素,供应商的变化会影响客户。
所以“依赖”是非常广泛的关系。假设如果一个类对象(客户端)有另一个类对象(供应商)作为成员,如果一个类对象向另一个类对象发送消息,如果一个类对象将另一个类对象作为其方法的参数,即使一个类(客户端)是另一个类(供应商)的子类,也会存在依赖关系,因为来自供应商的更改会影响客户端。
从技术上讲,所有这些关系都可以通过“依赖”行显示。但是上面的一些关系已经有了特殊的符号:比如超类-子类关系我们有泛化关系。不需要也显示“依赖”线,因为如果它们有泛化关系,它们就有依赖关系。我们对具有另一个类对象作为成员[属性]的类对象(客户端)具有“关联”关系。所以在这种情况下也不需要显示额外的依赖行。
实际上,“依赖关系”是类图定义错误的关系。但它对于显示 UML 没有特殊符号的依赖关系很有用,例如:
public class RepositoryManager
{
public UpdatePriceFor(ProductDescription description)
{
Time date = Clock::GetTime();
Money oldPrice =description.GetPrice();
...
}
private IList<Item> itemsList = new List<Item>();
}
所以所有的“关联”也都表现出“依赖”。但“依赖”是广义-一般-弱的关系。通常,如果存在比依赖关系更具体的特殊关系,则比使用它更强。最后,“经济地”使用你所有的关系。根据建模者模型读者的观点仅显示重要的部分。
[来源:改编自 Craig Larman 的 Applying UML and Patterns 书]
检查 Fowlers bliki 以获取更多信息DependencyAndAssociation
关联意味着两个关联的实体在语义上是联系在一起的。依赖关系只声明存在......嗯,某种依赖关系。所有关联都是依赖关系,而依赖关系实际上并不意味着关联。例如,如果类“A”有一个方法接受“B”并将其作为参数传递给另一个类中的函数,则它依赖于类“B”。但是如果'A'调用了'B'类的某个方法,它应该被建模为关联。
免责声明我已经阅读了 UML 规范,也多次问过自己这个问题。我得出了上面的定义,但我仍然不确定它是否 100% 正确。