UML类图学习

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

原文地址:https://www.cnblogs.com/ffopen/p/14855163.html