UML中关联、依赖、聚集等关系的异同
1. ?关联:连接模型元素及链接实例,用一条实线来表示;
2.? 依赖:表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示; 3.? 聚集:表示整体与部分的关系,用一条实线加空心菱形来表示; 4.??组成:表示整体与部分的有一关系,用一条实线加实心菱形来表示; ???????????? (关联,依赖,聚集,组成的异同见后描述) 5.? 泛化(继承):表示一般与特殊的关系,用一条实线加空心箭头来表示; 6.? 实现:表示类与接口的关系,用一条虚线加空心箭头来表示; ? 关联,依赖,聚集的异同:(《Java面向对象编程》一书,作者:孙卫琴 来源:www.javathinker.org) 在建立对象模型时,很容易把依赖、关联和聚集关系混淆。当对象A和对象B之间存在依赖、关联或聚集关系时,对象A都有可能调用对象B的方法,这是三种关系之间的相同之处,除此之外,它们有着不同的特征。 1.依赖关系的特征
图1-39 Bicycle类与Pump类的依赖关系 Bicycle类和Pump类之间是依赖关系,在Bicycle类中无需定义Pump类型的变量。Bicycle类的定义如下: public class Bicycle{
myBicycle.expand(pumpFromRepairShed1); //到第一个修车棚里充气 2.关联关系的特征 图1-40 主人和自行车的关联关系
public class Person{
/** 骑自行车去上班 */ 那就好比去上班前,还要先四处去借一辆自行车,然后才能去上班。
聚集关系和关联关系的区别还表现在以下方面: (1) 对于具有关联关系的两个对象,多数情况下,两者有独立的生命周期。比如自行车和他的主人,当自行车不存在了,它的主人依然存在;反之亦然。但在个别情况下,一方会制约另一方的生命周期。比如客户和订单,当客户不存在,它的订单也就失去存在的意义。 (2) 对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的 生命周期,当整体消失,部分也就随之消失。比如小王的自行车被偷了,那么自行车的所有组件也不存在了,除非小王事先碰巧把一些可拆卸的组件(比如车铃和坐 垫)拆了下来。 以下例程1-6是Bicycle类的源程序。 例程1-6 Bicycle.java public class Bicycle{ public void setBell(Bell bell){ /** 发出铃声 */ 在Bicycle类中定义了Bell类型的成员变量,Bicycle类利用自身的bell成员变量来发出铃声,这和在Person类中定义了Bicycle类型的成员变量,Person类利用自身的bicycle成员变量去上班很相似。 4。组成关系的特征 组成关系是一种两个类之间的关系,其中整体类由部分类组成,部分类需要整体类才能存在,这种关系意味着销毁整体类将会同时销毁部分类 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |