我们在利用UML对系统进行建模时,常常涉及到四种关系。
一、关联关系:表示的是一种结构化关系(实线表示)
可分为普通关联、聚合和组合。
1、普通关联:可分为单向关联即二者之间仅存在单一方向的联系,反过来则行不通
如图:
2.双向关联:在两个方向上均存在联系。
如图:
3.聚合和组合:表示的均为“整体——部分”的关系
表示:聚合:
解析:上图表示两个类书架与书之间的聚合关系。1个书架中有0或多本书,而1本书只能对应1个书架。(空心菱形代表聚合)
组合:
解析:1个人是有1个头,1个身体,2个胳膊和2条腿组成的。(实心菱形代表组合)
二者区别:分别代表了整体与部分在形成时的不同生命周期。
1、从上图中看出,聚合中的部分(书)脱离整体(书架)可独立存在,即在没有整体时,部分就已经产生了。
2.而对于组合来说,当(整体)一个人未完全诞生以来,对于(部分)身体的任意一部分都是不能单独就产生的。所以,组合中部分依赖整体而存在。
二者在代码中的区别:
1.聚合:
在声明整体时没有把部分同时进行实例化
2.组合:
在声明整体时,同时对部分进行实例化,表示,在整体产生时,伴随着部分的产生
以上是有关于,聚合和组合的联系与区别。
4.关联类:两个类可唯一的确定一个类。
表示:
二、依赖:
表示:
箭头指向被依赖的一方。
此关系表示的是一种使用关系。
例如:学生上机,假设学生上机时,需要用到一个卡类,那么学生类对卡类就存在一个依赖关系。
三、泛化:继承(可分为单重继承和多重继承)
表示:
箭头指向被继承的一方(父类)。
例如:人类中孩子继承了父母的全部基因。
四、实现
表示:
例如:类对接口的实现。
类对抽象类的实现等
以上是在视频中学习到的关于UML中常见四种关系的总结。
原文:http://blog.csdn.net/wangyy130/article/details/19123597