UML类图

图例详解:

1.类

  • 矩形框代表一个类Class
  • 矩形框分三层
    • 第一层:类的名称,如果是抽象类,则用斜体显示
    • 第二层:类的特性,通常是字段和属性
    • 第三层:类的操作,通常为方法和行为

2.接口

  • 与类图的区别,顶端有个<<interface>>显示。
    • 第一层:接口名称
    • 第二层:接口方法
  • 接口还有种棒棒糖表示方法,如图右:唐老鸭类实现了讲人话的接口

3.关系

  • 继承关系用空闲三角形+实线来表示

  • 实现接口用空心三角形+虚线来表示

  • 关联关系用用实线箭头来表示,在代码中的表现如下:
1
2
3
public class Penguin extends Bird{
private Climate climate;//在Penguin(企鹅)中引用了Climate(气候)
}

  • 聚合关系用空心菱形+实线箭头
  • 大雁是群居动物,每只大雁都属于雁群,一个雁群可以有多只大雁
  • 聚合表示一种弱“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分
1
2
3
public class WideGooseAggregate{
private WideGoose[] wideGooses; //雁群可以有多只大雁
}

  • 合成关系用实心菱形+实线箭头
  • 两端数字1,2表名这一端可以有几个实例,很显然一个鸟应该有2个翅膀(如果有无数个实例可以用n表示
  • 合成(组合)是一种强“拥有”关系,体现了严格的部分和整体关系,部分和整体生命周期一样
1
2
3
4
5
6
public class Bird{
private Wing wing;
public Bird(){
wing = new Wing();//在鸟类初始化时,就实例化翅膀
}
}

  • 依赖关系,用虚线箭头表示
  • 动物依赖氧气,水才能存活
1
2
3
4
5
public abstract class Animal{
public Metabolism(Oxygen oxygen,Water water){

}
}

编程是一门技术,更加是一门艺术