UML类图

来源:互联网 发布:南通cnc数控编程培训 编辑:程序博客网 时间:2024/06/03 04:20

UML类图

这里直接引用《大话设计模式》的UML类图讲解,有删节

UML类图图示样例

UML类图图示样例

首先看“动物”矩形框,它代表一个类。类图分三层,第一层显示类名称,如果是抽象类,就用斜体显示。第二层是字段或属性。第三层是方法或行为。注意前面的符号,”+” 表示 public,”-” 表示 private,”#” 表示 protected。

类

注意左下角的”飞翔“,它表示一个接口图,与类图的区别主要是顶端有<< interface>>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是正下方”讲人话“这个接口。

接口

像动物跟鸟之间用空心三角形+实线表示继承关系。

继承

class Bird extends Animal {}

大雁实现了飞翔接口,使用空心三角形+虚线表示。

实现接口

class WideGoose implements IFly {}

企鹅了解气候,当一个类”知道“另一个类时,可以用关联(Association)。关联关系用实线箭头表示。

关联

class Penguin extends Bird {    private Climate climate;}

再看大雁和雁群这两个类,大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以有多只大雁。所以它们之间满足聚合(Aggregation)关系。聚合表示一种弱”拥有“关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形+实线箭头表示。

聚合

class WideGooseAggregate {    private WideGoose[] arrayWideGoose;}

合成(Composition,也译为”组合“)是一种强的”拥有“关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。这里鸟和翅膀就是组合关系。合成关系用实心菱形+实线箭头表示。另外,合成关系的连线两端还有数字”1“和数字”2“,这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两只翅膀。如果一个类可能有无数个实例,就用”n“表示。关联关系、聚合关系也可以有基数的。

组合

class Bird {    private Wing wing;    public Bird() {        wing = new Wing();    }}

动物依赖于氧气和水。它们之间是依赖关系(Dependency),用虚线箭头表示。

依赖

abstract class Animal {    void Metabolism (Oxygen oxygen, Water water) {    }}
1 0