单向关联和依赖之间的区别

use*_*152 0 oop dependencies uml

根据维基百科

依赖关系是一种关系,表明元素或元素集需要其他模型元素用于其规范或实现.[1] 该元素取决于独立元素,称为供应商.

那么它与单向关联不一样吗?当一个类中的操作使用另一个类的对象作为其参数时,我们是否使用依赖关系?

单向关联和依赖如何不同.任何例子都会非常有帮助

Hip*_*nor 5

依赖性:

表示客户端元素(任何类型,包括类,包,用例等)都知道另一个供应商元素,供应商的更改可以影响客户端.

所以"依赖"是非常广泛的关系.假设一个类对象(客户端)有另一个类对象(供应商)作为成员,如果一个类对象将消息发送到另一个类对象,如果是一个类对象从其方法中获取另一个类对象作为参数,即使类(客户端)是另一个类(供应商)的子类,也会存在依赖性,因为从供应商的更改将影响客户端.

从技术上讲,所有这些关系都可以通过"依赖"行显示.但是上面的一些关系已经有了特殊的符号:例如对于超类 - 子类关系,我们有泛化关系.不需要也显示"依赖"行,因为如果它们具有泛化关系,则它们具有依赖性.并且我们为具有另一个类对象作为成员[attribute]的类对象(客户端)具有"关联"关系.因此在这种情况下也不需要显示额外的依赖行.

实际上,"依赖"是类图的错误定义关系.但它可以用于显示UML没有特殊符号的依赖关系,例如:

  • 如果您在其中一个类(客户端)方法中有另一个类对象(供应商)作为参数
  • 如果您对全局变量有依赖性
  • 当你在另一个类上调用静态方法时.
  • 局部变量(你认为你有重要的依赖)

在此输入图像描述

public class RepositoryManager
{
     public UpdatePriceFor(ProductDescription description)
     {
          Time date = Clock::GetTime();
          Money oldPrice =description.GetPrice();
          ...
     }

    private  IList<Item> itemsList = new List<Item>();

}
Run Code Online (Sandbox Code Playgroud)

因此,所有"联想"也表现出"依赖性".但"依赖性"是广义 - 弱势的关系.通常情况下,如果存在一种比依赖关系更具体的特殊关系而不是使用它.最后"经济地"使用你们所有的关系.仅根据建模器模型阅读器视角显示重要的视图.

[来源:改编自Craig Larman的应用UML和模式书]

检查Fowlers bliki以获取更多信息DependencyAndAssociation