一.类与类间几种关系对应UML中的表示
看一张图,这张图是程杰老师在《大话设计模式》中讲解UML类图时使用的一张UML图示例。
两个概念:
类、接口
六个关系:
继承、实现、关联、依赖、聚合、组合
1.类的表示
看图,类的表示是一个矩形框里面分成三行
- 第一行表示的就是类名(如果第一行类名是斜体,则表示此类事抽象列)
- 第二行表示的是字段,注意看前面还有+号,在类图中+、-、#分别表示public、private、protected
- 第三行表示的是方法,前面也有+,含义同第二行+一样,表示方法是public的
2.接口的表示
继续看图,和类的结构相似
- 第一行表示接口名,注意开头要用《interface》表示接口,接着再写接口名
- 第二行表示接口的方法,+表示该方法为public
接着我们来看看类与类或者类与接口之间关系表示
1.继承关系
如图,鸟也是一种动物,所以鸟可以继承与动物,它们的关系表示则是空心三角形加实线表示
2.实现关系
如图,大雁是会飞的,所以它实现了飞翔的接口,实现的关系表示就是空心三角形加虚线
3.关联关系
这里举的是企鹅和气候的例子,企鹅要感知气候的变化,企鹅每年要长途跋涉,为什么,因为气候变了。
在类中需要引用到的类,此时他们是关联关系,由箭头加实线表示
4.依赖关系
在类的方法参数中需要引用到的类,此时它们是依赖关系。由箭头加虚线表示
5.聚合关系
聚合表示的是一种弱拥有的关系,A对象可以包含B对象,但是B对象不是A对象的一部分,像雁群和雁就是一种聚合关系
每只大雁都属于一个雁群,一个雁群可以包含多个大雁这就满足聚合关系,由箭头加实线和空心菱形表示,要和组合关系区分,下面讲组合关系。
6.组合关系
组合关系是一种强拥有关系,体现了严格的部分和整体关系,部分和整体的生命周期一致。
上面讲的聚合关系是一种弱拥有关系,强拥有关系是指必不可少的组成部分,比如说鸟和翅膀,一只鸟身上的两个翅膀,那翅膀对于鸟来说就是一种强拥有关系,不能是可有可无的,少了翅膀对鸟来说绝对是致命的。再比如说人和人的四肢,也是一种组合关系。这种关系由箭头加实线和实心菱形表示
好了,今天的UML类图就讲到着了,记住两个概念(类和接口)表示和六种关系(继承,实现,关联,依赖,聚合,组合)表示,UML就基本掌握了。