UML依赖特征和使用时注意事项

本文和大家重点讨论一下UML依赖关系,在学习UML的过程中,你经常会遇到UML关系问题,你对此是否了解,这里和大家分享一下UML依赖关系,希望本文的介绍对你学习UML有帮助。

UML学习笔记——依赖关系

UML依赖关系的特征

对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间主要体现为依赖关系,例如生产零件的机器和零件,机器负责构造零件对象。再例如充电电池和充电器,充电电池通过充电器来充电。再例如自行车Bicycle和打气筒Pump,自行车通过打气筒来充气。图1-39为Bicycle类与Pump类的类框图。

UML依赖特征和使用时注意事项

图1-39Bicycle类与Pump类的依赖关系


Bicycle类和Pump类之间是UML依赖关系,在Bicycle类中无需定义Pump类型的变量。Bicycle类的定义如下:

publicclassBicycle{  


/**给轮胎充气*/  


publicvoidexpand(Pumppump){  


pump.blow();  


}  


}  

在现时生活中,通常不会为某一辆自行车配备专门的打气筒,而是在需要充气的时候,从附近某个修车棚里借个打气筒打气。在程序代码中,表现为Bicycle类的expand()方法有个Pump类型的参数。以下程序代码表示某辆自行车先后到两个修车棚里充气:
myBicycle.expand(pumpFromRepairShed1);//到第一个修车棚里充气
myBicycle.expand(pumpFromRepairShed2);//若干天后,到第二个修车棚里充气

UML依赖关系使用注意事项

1.对存在依赖关系的两个类生成代码时,并不对关系的类增加属性。但产生支持关系所需的特定语句。在C++中,生成代码中会包括必要的#include语句。

例如类A依赖于类B,类A没有B属性,因此要用其他方法查找B。有三种方法:

如果B是全局的,则类A知道它存在。

如果B实例化为类A操作中的本地变量,则类A知道它存在。

如果B作为参数传递到类A中,则类A知道它存在。
在依赖关系中,必须采用这三种方法之一。

关联于UML依赖的第二个差别在于方向,关联可以是双向的,而依赖只能是单向的。

2.包之间同样存在依赖性。例如包A依赖于包B。则不能直接在另一个应用程序中复用A包,而要同时复用B包。而B包更容易复用,因为它没有依赖于其他包。

uml

相关推荐