UML 存在的意义
我们在学习设计模式时总会涉及到类与类之间的关系, 这也会让人感觉到很抽象, 为了更好滴了解设计模式中类与类之间的关系(类与接口之间的关系), 这时我们就用到了 UML.
UML 的分类
类与类之间大致分为了四种关系:
① 泛化关系
② 实现关系
③ 依赖关系
④ 关联关系
一. 泛化关系
说白了就是继承, 类与类之间的继承, 接口与接口之间的继承:
二. 实现关系
类与接口之间的关系, 一个类实现了一个或者多个接口.
三. 依赖关系
Human 类依赖 Ship 类, 依赖关系是单向的,Ship 的改变会影响到 Human.依赖关系体现为局部变量、方法的形参,或者对静态方法的调用.
四. 关联关系
关联关系分类就比较多了, 分为:
① 单向关联, 双向关联: 关联关系一般使用成员变量来实现.
② 聚合关系: 也是关联关系的一种, 是强关联关系.
③ 组合关系: 比聚合关系强的关联关系.
① 单向关联, 双向关联
单向关联和双向关联本质一样, 就以单向关联为例: Person 类有一个属性是 Money 类的, Person 可以获取到 Money 的属性和方法, 属于强依赖关系, 关联关系平等.
② 聚合关系
聚合关系顾名思义, 聚合在一起的, 两者之间是整体与个体的关系, 但是可以分离, 各自有各自的生命周期, SDWebImageManager 类包含 SDImageCache 类, 但 SDImageCache 不是 SDWebImageManager 的组成部分.
③ 组合关系
组合关系和聚合关系有些类似, 不同的是 SDWebImageWebPCoder 是 SDWebImageCodersManager 的一部分, 生命周期相同, SDWebImageWebPCoder 不能脱离 SDWebImageCodersManager 而存在.
ps: 个人感觉关联关系的辨别比较模糊, 需要结合具体事件分析来进行判断.