UML 关系图介绍

1,675

UML 存在的意义

      我们在学习设计模式时总会涉及到类与类之间的关系, 这也会让人感觉到很抽象, 为了更好滴了解设计模式中类与类之间的关系(类与接口之间的关系), 这时我们就用到了 UML.

UML 的分类

      类与类之间大致分为了四种关系:

      ① 泛化关系

      ② 实现关系

      ③ 依赖关系

      ④ 关联关系

一. 泛化关系

      说白了就是继承, 类与类之间的继承, 接口与接口之间的继承:

      

二. 实现关系

      类与接口之间的关系, 一个类实现了一个或者多个接口.

            

三. 依赖关系

      Human 类依赖 Ship 类, 依赖关系是单向的,Ship 的改变会影响到 Human.依赖关系体现为局部变量、方法的形参,或者对静态方法的调用.

               

四. 关联关系

      关联关系分类就比较多了, 分为:

      ① 单向关联, 双向关联: 关联关系一般使用成员变量来实现.

      ② 聚合关系: 也是关联关系的一种, 是强关联关系.

      ③ 组合关系: 比聚合关系强的关联关系.

① 单向关联, 双向关联

      单向关联和双向关联本质一样, 就以单向关联为例: Person 类有一个属性是 Money 类的, Person 可以获取到 Money 的属性和方法, 属于强依赖关系, 关联关系平等.

      

                     

② 聚合关系

      聚合关系顾名思义, 聚合在一起的, 两者之间是整体与个体的关系, 但是可以分离, 各自有各自的生命周期, SDWebImageManager 类包含 SDImageCache 类, 但 SDImageCache 不是 SDWebImageManager 的组成部分.


③ 组合关系

      组合关系和聚合关系有些类似, 不同的是 SDWebImageWebPCoder 是 SDWebImageCodersManager 的一部分, 生命周期相同, SDWebImageWebPCoder 不能脱离 SDWebImageCodersManager 而存在.

          

      ps: 个人感觉关联关系的辨别比较模糊, 需要结合具体事件分析来进行判断.