UML类图

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

UML类图图示样例

UML类图_第1张图片
UML类图图示样例

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

UML类图_第2张图片
动物类

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

UML类图_第3张图片
接口

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

UML类图_第4张图片
继承
class Bird extends Animal {

}

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

UML类图_第5张图片
实现接口
class WideGoose implements IFly {

}

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

UML类图_第6张图片
关联
class Penguin extends Bird {
    private Climate climate;
}

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

UML类图_第7张图片
聚合
class WideGooseAggregate {
    private WideGoose[] arrayWideGoose;
}

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

UML类图_第8张图片
组合
class Bird {
    private Wing wing;
    public Bird() {
        wing = new Wing();
    }
}

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

UML类图_第9张图片
依赖
abstract class Animal {
    void Metabolism (Oxygen oxygen, Water water) {
    
    }
}

你可能感兴趣的:(UML类图)