【参考】本文所有素材、代码、文字来自大话设计模式
Unified Modeling Language (UML)又称统一建模语言或标准建模语言
“动画”矩形框表示一个类,类图分三层,第一层显示类的名称,如果为斜体表示抽象类。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为,注意前面的符号,‘+’表示Public,‘-’表示Private,‘#’表示Protected。
|
“飞翔”和“唐老鸭”表示的是一个接口,接口有两种表示方法,如上图,“飞翔”接口与类图的主要区别主要是顶端有《interface》显示,第一行是接口名称,第二行是接口方法。“唐老鸭”接口是另外一种接口表示方法。
|
子类继承父类的继承关系,使用空心三角形+实线表示,空心箭头指向父类,如上图。 |
子类实现接口,使用空心三角形+虚线表示,空心箭头指向父接口,如上图。 |
以上企鹅和气候两个类,他们之间有引用关系,有着很大的关联。企鹅在生活时需要知道气候的变化,当一个类‘知道’另外一个类时,可以用关联(association)表示,关联关系用实线箭头表示,箭头指向引用的对象,如上图。
|
以上雁群和大雁两个类,大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以拥有多个大雁,雁群类中拥有大雁的数组对象,所以它们之间满足聚合(Aggreagation)关系。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形+实线箭头表示,箭头指向所‘拥有’的对象,如上图。
|
以上鸟和翅膀两个类,是部分和整体的关系,并且翅膀和鸟的生命周期相同,它们是合成(组合)关系。在上图中,会注意到合成关系的两端有数字‘1’和‘2’,这被称为基数,表明这一端的类可以有几个实例,很显然,一个鸟应该有两只翅膀,如果一个类可能有无数个实例,则就用‘n’表示,关联关系、聚合关系也是可以有基数的。合成关系用实心菱形+实线箭头表示,箭头指向‘部分’的类,如上图。
|
以上“动物”类,如果要生存,就需要依赖氧气、水、食物等的供应,他们之间是依赖关系。依赖关系用虚线箭头表示,如上图。
|