您现在的位置是:首页 > 文章详情文章详情

UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出

会飞的猪 2018-09-02 603人已围观

简介白码驿站是一个面向开发者的知识共享社区,专注于为开发者打造一个纯净的技术交流社区(源码下载,免费在线图片压缩,jquery插件,插件下载,JS/CSS在线压缩。)-白码驿站

        Unified Modeling Language(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。

        简单来说,UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。

首先来看一下UML图长什么样子吧:

UML图样例


下面就让我来详细解读一下各中的关系吧

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

UML类视图


        然后注意左下角的‘ 飞翔’,它表示-一个接口图,与类图的区别主要是顶端有<<interface>>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。

UML 接口图

        接下来就讲类与类之间的关系了。首先看一下动物,鸟,鸭,唐老鸭之间的关系符号。他们都是由空心三角符号+实线来连接的。没错, 他们都是有继承关系,而继承关系就是由空心三角形+实线来表示


UML 继承


        图1中有几种鸟中,大雁是最能飞的,让他实现了飞翔接口。实现接口用空心三角+虚线来表示

UML 接口实现


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

UML 关联关系

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

UML聚合关系

UML代码中聚合表示方法


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

UML 合成(组合)关系

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

UML 依赖关系

        以上就是类图和常见的类图之间的关系。

Tags: UML

很赞哦! (2)

评 论

点击排行

系统处理中...