UML类图以及各种类之间的关系

来源:互联网 发布:u9地图优化精灵 编辑:程序博客网 时间:2024/06/11 22:27

每次在阅读或者画UML 图的时候,总是对各种类之间的关系区分的不是很清楚,最近在看《大话设计模式》,开篇的介绍非常详细易懂,赶紧整理一下,便于自己记忆。

1. 继承关系

继承关系表示一个类派生自另外一个类,用来实现多态。使用实线的空心三角形表示。下图所示表示 Bird 类 继承 Animal 类。



2. 接口实现

接口实现类似于继承,使用虚线的空心三角形箭头表示



3.关联

当一个类“知道”另外一个类时,使用关联(association),在类的定义中表现形式为一个类是另外一个类的成员变量。关联和合成(组合)有细微的区别,下图所示的代码中,成员变量 climate 并没有在构造函数中创建实例,也就是说 climate 的生命周期要小于 Bird 的生命周期,climate并不是严格的不可分割的部分。



4. 合成 (组合, Composition)

合成是一种强的拥有关系,体现了严格的整体和部分的关系,部分 和  整体 的生命周期是相同的。例如鸟拥有翅膀,翅膀是鸟不可分割的部分,使用合成关系,如下图所示。



5. 聚合(Aggregation)

聚合表示一种 弱 的拥有关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分。 聚合也体现了部分雨整体的关系,但是相对于组合而言,聚合并不要求部分 和 整体 的生命周期相同。例如大雁是雁群的一部分,但是雁群不是大雁的一部分,我们说,雁群和大雁就是一种聚合关系



6. 依赖关系

依赖表示的是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。如下图所示:



UML 类图并不难,但如果希望能够通过UML类图快速的梳理程序结构,还需要对各种关系有充分的理解。希望小小的整理能对大家有所帮助。


0 0