UML类图入门级介绍

来源:互联网 发布:linux 最新内核 编辑:程序博客网 时间:2024/06/02 02:16

首先上一张经典的图


首先,看动物矩形框,它表示一个类(Class)。类分三层,第一层显示类的名称,如果是抽象类,则用斜体字显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。前面的符号,+表示public,-表示private,#表示protected。

左下角的飞翔,它表示一个接口(interface)。与类的区别主要是顶端的<<interface>>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示法,俗称棒棒糖表示法。唐老鸭是能讲人话的鸭子,实现了讲人话的接口。

接下来是类与类,类与接口之间的关系了。首先注意动物、鸟、鸭、唐老鸭之间的关系符号。它们都是继承关系,继承关系用空心三角形+实现来表示。

上述所列举的几种鸟中,大雁最能飞,让它实现了飞翔接口。实现接口用空心三角形+虚线来表示。

企鹅和气候两个类,企鹅是很特别的鸟,会游不会飞。更重要的是,它与气候有很大的关联。我们不去讨论为什么北极没有企鹅,为什么它们每年都要长途跋涉。总之,企鹅需要知道气候的变化,需要了解气候规律。当一个类知道另一个类时,可以用关联(association)。关联关系用实线箭头来表示。

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

组合(composition)是一种强的拥有关系。体现了严格的部分和整体的关系,部分和整体的生命周期一样。在这里鸟和其翅膀就是组合关系,因为他们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。组合关系用实心的菱形+实线箭头来表示。另外,你会注意到组合关系的连线两端还有一个数字1和数字2,这被称为基数。表明这一端的类可以拥有几个实例。很显然,一个鸟有两只翅膀。如果一个类可能有无数个实例,则就是n来表示。关联关系,聚合关系也是可以有基数的。

动物的几大特征,比如有新成代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。它们之间是依赖关系(dependency)。用虚线箭头来表示。

当然,UML类图远不止这么简单,还需在学习和使用中不断总结和提高。