看UML视频已经有一段时间了,但是对于UML中的关系还是不够理解。虽然,UML中只有四种关系,但是还是不太能够区分,有种剪不断,理还乱的赶脚。特此总结。
(一)关联。
关联表示两个或多个类之间的结构性关系。比如,一个学校有多名学生,一名学生属于一所学校。其中,学校有个属性叫做“学生”,学生有个属性叫做“学校”。
1.整体-部分关系:
(1)聚合关系:例如,汽车和发动机。
(2)组合关系:例如,让一个人和他的心脏。
比较整合与组合:
整合:没有整体,也有个体。个体可以独立存在。
组合:先有整体,才有个体。个体随着整体而存在。
2.普通关联:
普通关联关系是指,两个类之间有普通的结构关系。比如公司与雇员。
(二)依赖。
依赖,说明一个事物规格说明的变化可能影响到它的另一个事物。说白了,其实就是一种使用关系,就是一个事物对另一个事物方法或者属性的使用。
(三)泛化。
泛化就是继承关系,类似我们平时理解的晚辈与长辈之间“继承”的含义,不过,在面向对象里面,子类继承的是父类的属性或者方法。
1.单重继承:一个子类有且只有一个父类。
2.多重继承:一个子类有两个或者两个以上的父类。
(四)实现。
实现是类元之间的语义关系,在该关系中,一个类元描述了一个类元保证实现的契约。比如,类实现了接口。
再区分一下依赖和关联!
关联,是指一个类了解或者具有另一个类的属性。
依赖,是指一个知道另一类的属性,并且使用。
在视频里,有一段比较拗口的话“能用继承描述时,用泛化关系;描述类与接口的关系时,用实现关系;两个类之间有结构关系,用关联描述;其他用依赖来描述”。这总结算这几个关系的key了吧。