每次在阅读或者画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类图快速的梳理程序结构,还需要对各种关系有充分的理解。希望小小的整理能对大家有所帮助。
本文详细介绍了UML类图中的六种关系:继承、接口实现、关联、合成、聚合和依赖关系,通过实例解析了它们的区别和应用场景,帮助读者更好地理解和运用这些关系来设计和理解程序结构。
1018

被折叠的 条评论
为什么被折叠?



