UML中的几种关系——依赖、关联、聚合、组合、泛化、实现
(1)依赖关系 Dependency ……use a…… 类A使用类B,且这种使用关系是很弱的,具有偶然性、临时性,但类B若发生变化会影响到类A。 【表示方法】带箭头虚线,箭头指向被依赖对象 【具体表现】:局部变量,方法的参数,以及对静态方法的调用 【例子】 如,植物进行光合作用从而不断生长。而保证植物有生命能够进行光合作用的条件,就是要有空气、水等等。植物依赖于空气和水。他们之为依赖关系。 【代码层表现】类B作为类A的参数被类A在某个方法中使用。 Air类和Water类作为Plants类中Photosythesis方法的参数。 Water类作为Plants类中Photosythesis方法的返类型 ==================================================================================================== (2)关联关系 Association ……has a…… 对象A与对象B之间存在特定的对应关系, 对象A长期的持有对象B的引用。 体现的是两个类、或者与接口之间语义级别的一种强依赖关系。 【表示方法】:带箭头的实线,箭头指向被引用的对象 【具体表现】被关联的类B以类属性的形式出现在关联类A中(并非所有的属性都是关联,像int/bool这类的属性就不宜表示为关联),也可能是关联类A引用了一个类型为被关联类B的全局变量 【例子】 如,"种子"需要知道"气温"是否适合,才能够发芽 【代码层表现】 在种子Seed对象中,引用到气温Temperature对象 ========================================================================= 聚合关系 Aggregation ……owns a…… 聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分——《设计模式》第2版 【表示方法】空心菱形+实线箭头(加实线箭头为单向聚合) 【例子】大雁与雁群,每只大雁属于一个雁群,一个雁群可以有多只大雁,它们之间满足聚合关系。 ========================================================================== 组合(合成)关系 Composition ……Is a part of …… 组合是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体生命周期一样。 【表示方法】实心菱形+实线箭头 连线两端的数字“1”和“2”成为基数,用来表明这一端的类可以有几个实例。 【例子】鸟和其翅膀,就是聚合(合成)关系,它们是整体和部分的关系,鸟和翅膀的生命周期相同。 =============================================================================================== (3)泛化关系 Generalization Is a kind of 表示对象与对象之间的继承关系。具体形式为类于类之间的继承关系、接口与接口之间的继承关系。 【表示方法】空心三角箭头+实线 【主要用途】 1、实现多态 2、多重继承 【例子】 ============================================================================================ (4)实现关系 Implementation 用来规定接口和实现接口的类或者构件结构的关系,接口是操作的集合,而这些操作就用于规定类或者构件的一种服务。一个接口可以被多个类或组件实现,一个类或组件也可有多个接口。 【表示方法】空心三角箭头+虚线 【使用情况】 1、在接口和实现该接口的类间 2、在用例以及实现该用例的协作间 【例子】 省略表示法,将接口表示为一个小圆圈并和实现它的类用一条线相连 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |