本文转载自设计模式与Android(篇一)
组成元素
类和接口
: 通过黄色的矩形框来表示一个类, 例如上面鸟就是一个普通类, 如果类名是斜体那么就是抽象类, 如果和飞翔或者唐老鸭的表示法那么就是接口.访问权限
: 通过+ 公共权限
,- 私有权限
,# 保护权限
变量和方法
: 分别在第二行, 和第三行表示,抽象方法同样斜体表示, 静态属性的用下划线表示.
关系结构
继承关系
: 类与类之间的关系, 通过空心三角+实线表示, 通过箭头的方向指向父类表述关系.实现关系
: 类与接口直接的关系, 通过空心三角+虚线表示, 通过箭头的方向指向接口表述关系.关联关系
: 当一个类知道另一个类的时候,可以使用关联, 比如企鹅和气候两个类中,企鹅类的变量有气候类的引用
, 这个时候就如上图之间的关系. 实线箭头表示, 箭头指向被知道的类依赖关系
: 例如动物是依赖氧气和水的, 就如动物类中的方法形参类型依赖这两个类型
. 如上图动物和水之间关系. 使用虚线箭头, 箭头指向被依赖的类聚合关系
: 表示一种弱拥用, A可以包含B, 但B不可以包含A. 如大雁和雁群两个类. 雁群类中会有一个数组,数组的元素是大雁类型. 这之间就是聚合
. 使用空心菱形+实线箭头合成关系
: 也可以认为是组合
. 是一种强拥有关系. 例如鸟类和翅膀类, 鸟类是整体, 翅膀类是部分. 并且其生命周期相同, 对应着就是在鸟类初始化的时候,翅膀类也会随之初始化. 并且, 上图中的鸟到翅膀还有1..2
的字样. 这称为基数. 表明一段会有几个实例, 例如一个鸟会有两个翅膀. 如果一个类有无数个实例那就用n
表示.关联关系
,聚合关系
也是可以有基数的. 使用实心菱形+实线箭头表示.