UML类图基础
一、类图的基本画法(摘自大话设计模式)
首先,看动物矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。前面的符号,+ 表示 public,- 表示 private,# 表示 protected。
右下角的飞翔,它表示一个接口图,与类图的区别主要是顶端的 <> 显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法。唐老鸭是能讲人话的鸭子,实现了讲人话的接口。
接下来的是类与类,类与接口之间的关系了。首先注意动物、鸟、鸭、唐老鸭之间的关系符号。它们都是继承的关系,继承关系用空心三角形 + 实线来表示的。
上述所列举的几种鸟中,大雁最能飞,让它实现了飞翔接口。实现接口用空心三角形 + 虚线来表示。
企鹅和气候两个类,企鹅是很特别的鸟,会游不会飞。更重要的是,它与气候有很大的关联。我们不去讨论为什么北极没有企鹅,为什么它们要每年长途跋涉。总之,企鹅需要知道气候的变化,需要了解气候规律。当一个类知道另一个类时,可以用关联(association)。关联关系用实线箭头来表示。
组合(Composition)是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。在这里鸟和其翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。组合关系用实心的菱形 + 实线箭头来表示。另外,你会注意到合成关系的连线两端还有一个数字 1 和数字 2,这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就是 n 来表示。关系关系、聚合关系也可以有基数的。
动物的几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。他们之间是依赖关系(Dependency),用虚线箭头来表示。
二、总结
继承关系: 用空心三角形 + 实线来表示 ; 举例:鸟、鸭与动物类是继承关系
class Bird: Animal // 继承动物类 { }
实现接口:实现接口用空心三角形 + 虚线来表示; 举例:大雁实现飞的接口
class WideGoose: IFly //实现飞翔接口 { }
关联关系:关联关系用实线箭头来表示; 举例:企鹅与气候的关系,企鹅关注气候变化
class Penguin : Bird { private Climate climate // 在企鹅中,引用到气候对象 }
聚合关系:组合关系用空心的菱形 + 实线箭头来表示; 举例: 大雁与雁群
class WideGooseAggregate { private WideGooese[] arrayWideGoose; // 雁群中有大雁数组对象 }
组合关系(生命周期一致,部分和整体的关系):组合关系用实心的菱形 + 实线箭头来表示; 举例: 鸟与翅膀
class Bird { private Wing wing; public Bird() { wing = new Wing(); // 在鸟类中,初始化时,实例化翅膀,他们同时生成 } }
依赖关系:依赖关系(Dependency),用虚线箭头来表示 ; 举例:动物依赖氧气、水以及食物
abstract class Animal { public Metabolism (Oxygen oxygen, Water water) { } }
参考资料: https://blog.csdn.net/u013870094/article/details/78826614
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭