文章内容参考自阎宏《Java与模式》,在UML中类与类的关系可以有以下五种:
1.一般化关系(Generalization),所谓一般化通常指的就是继承关系,这里会有一般化(Generalization)及具体化(Specialization)
一般化的UML图例如下:
2.关联关系(Association),关联关系可以是单向或双向,但一般情况下大部份为单向,关联关系可进一步划分为聚合及合成关系,如果确实无办法区分,就先以关联关系表示,留意一下在关联关系中有个基数的概念(Multiplicity),就是
类似关系型数据库一对一,一对多那个概念;
关联关系的类图如下:
3.关联关系演化为聚合关系(Aggregation),聚合关系是整体与部分的关系,但整体不会干涉部分的生命周期,简单来说,部分是可以独立存在的,例如:计算机由硬盘,CPU,内存组成,但硬盘,CPU、内存却可以独立存在;
聚合关系的类图如下:
4.关联关系演化为合成关系(Composition),合成关系比聚合关系更强,它要求整体的对象负责部分对象的生命周期,言下之意,如果整体消失了,部分也就消失了,而且部分不存在与其它类共享,例如:我们的心脏,脑袋,就与自己是合成关系;
合成关系的类图如下:
5.依赖关系(Dependency),依赖关系相对就比较弱了,而且它总是单向的,在java中,可以是局部变量,方法的参数或者是调用其它类的静态方法,例如:订单中添加商品,商品是订单中的一个参数,所以,我们可以说,订单依赖于商品。
依赖关系的类图如下:
阅读(4487) | 评论(0) | 转发(0) |