UML类之间关系
一、关联
两个相对独立对象,当对象的实例与另外一个对象特定实例存在固定关系时,两个对象之间就存在关联关系。
1.普通关联
(1)单向关联
学生使用单放机,但单放机不会有使用学生
(2)双向关联
(3)多种关联
![](http://img-my.csdn.net/uploads/201212/08/1354974341_3310.png)
教师与学生既给学生授课,也给学生答疑。
(4)一个类与多个类关联
![](http://img-my.csdn.net/uploads/201212/08/1354974352_7052.png)
教师不仅给学生A授课,也给学生B授课。
(5)自身关联
2.聚合
关联关系中一种特例,强调整体和个体之间的关系。但整体和部分呢是可以分离的,换句话就是具有各自的生命周
期。
![](http://img-my.csdn.net/uploads/201212/08/1354974378_5334.png)
如图电视机可以有screen、tvbox(电视机箱)、Remote Control(遥控器)等组成。没有了遥控器,电视
机依然能够存在;反过来也是一样。
3.组合
也是关联关系中一种特殊形式。同样表示整体和部分的关系,但这种关系比聚合更强。但整体的生命期结束后也就意
味着部分的生命周期结束了。
![](http://img-my.csdn.net/uploads/201212/08/1354974396_2658.png)
如图human可以有一个head、body等。Human不能失去head,当human的生命期结束了,head的生命周
期也就结束了。反之亦然。
二、依赖
类在实现某个功能的时候必须引用到另一个类的,则两个类之间存在依赖关系。
![](http://img-my.csdn.net/uploads/201212/08/1354974497_1849.png)
如图courseschedule在实现add a course方法的时候,会用到course。
三、泛化
子类继承父类的功能,是类之间或者接口之间最常见的关系。
1.单重继承
子类只有一个父类
2.多重继承
一个子类有两个或两个以上的父类
![](http://img-my.csdn.net/uploads/201212/08/1354974467_6937.png)
如图在子类Amphibiousvehicle上有两个父类LandVehicle 和 WaterVehicle,但这时候就会出现假如,andVehicle
和WaterVehicle都有V这个属性,那AmphibiousVehicle到底继承哪一个呢?就会出现二义性。
四、实现
如图类class 、subsystem、component实现了接口interface。接口:只是给出了方法的操作和原型,并没有给出
具体的代码实现,通过类来实现。
总结:对UML类之间的关系进行了一些浅显的概述
2. 泛化
3. 依赖
4. 实现