1. UML类图样例
2. 基本概念
2.0 类图说明
Class类图:分为三层,第一层显示类名称,如果是抽象类则用斜体显示;第二层表示类的特性,通常是字段和属性;第三层是类的方法或者行为, 前面的符号+表示public,-表示private,#表示protected,~表示default
Interface图:分为两层,第一层有<<interface>>标识,并显示接口名称;第二层表示接口方法
在面向对象程序设计时,类与类之间的关系主要分为继承,实现,依赖,关联,聚合,组合六种关系
空心菱形表示 contains of 关系; 实心菱形表示 part of
2.1 依赖关系
依赖关系用虚线、箭头表示,例如上图中的Animal依赖 Oxygen和Water,代码层面,依赖关系在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用;
2.2 关联关系
关联关系用实线、箭头表示,例如上图中的Penguin和Climate,表示类与类之间的联系,当一个类需要知道另一个类的属性和方法,可以使用关联,这种关系很强,比依赖关系更强,在代码层面和聚合、组合关系一样,只能从语义上区分;
2.3 组合关系
组合关系用实心菱形、实线、箭头表示,例如上图中的Bird和Swing是组合关系,代码层面,一个类是另外一个类的一部分(一个属性),强拥有关系,同生共死;常常会使用构造方法来达到组合目的;
比如:翅膀是鸟的一部分,轮胎是汽车的一部分,强调part of关系
2.4 聚合关系
聚合关系用空心菱形、实线、箭头表示,例如上图中的SwallowAggregate和Swallow是聚合关系,代码层面,和组合关系一样,一个类是另外一个类的一部分,但是是弱拥有关系,可以通过set方法来实现;
例如:雁群和大雁,飞机场和飞机;强调 contains of关系
2.5 泛化关系
泛化关系也叫继承关系,用空心三角形、实线表示,例如上图中Bird和Swallow、Duck、Penguin,代码层面extend
2.6 实现关系
实现关系用空心三角形、虚线表示,例如上图中Swallow和Fly接口,代码层面implements