随着UML的学习,对于UML中的四种关系有了更深一步的了解。
(1)依赖(dependency)
说明一个事物规格说明的变化可能影响到使用它的另一个事物。但反之亦然
其实依赖关系体现的是一种“使用关系”,即一个类的实现需要使用另一个类的方法或属性。
表示方法:用虚线箭头表示,箭头指向被使用的一方
举个例子来说,老师上课需要用到书本,这时候我们就可以说老师和书本之间存在依赖关系,老师需要使用书本
(2)关联(association)
关联是一种比依赖联系性强的一种关系,它表示的是一种类对另一种类的了解情况,一种类知道另一种类的属性和方法。
关联分为强关联和弱关联
弱关联
单向关联:只有一个类知道另外一个类的公共属性和操作
表示方法:用实现箭头表示,箭头指向的一方表示知道的一方
例如下图是A和B的单向关联,B知道A的属性和方法,但是A不知道B的属性和方法。
双向关联:两个类都知道另一个类的属性和方法
表示方法:用实线表示,不需其他的标注
例如下图是A和B的双向关联,A知道B的属性和方法,B知道A的属性和方法
强关联
聚集:聚集是整体和部分的关系,且部分离开整体可单出存在
表示方法:用实线+空心菱形表示,空心菱形的一方是整体
例如:汽车是由轮子组成的
组合:组合也是整体与部分的关系,但是在组合中,部分脱离了整体不能单独存在,如果整体没了,那么部分也不存在了。
表示方法:用实线+实心菱形组成,实心菱形的一方是整体
例如:人的身体是由头、躯干、四肢组成,如果没有了人这个整体,那么头、躯干和四肢都不能单独存在。
(3)泛化(generalization)
泛化就是一种继承关系,子类继承父类的属性和方法
继承就是一种子类复制父类属性方法并发展加入新的元素的一种方法。
表示方法:用实线+空心三角形
例如:苹果继承了水果的形状还有功能价值。
(4)实现(realization)
实现是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约
原则:
能用关联的时候就用关联,能用组合的时候要用组合,能用组合就不用聚合,能用聚合就不用一般关联,能用一般关联就不要用依赖,该用接口实现的时候就要用接口实现,能用继承的时候 就要用继承,用准确的关系描述