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

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

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

首先来看一下UML图长什么样子吧:
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
下面就让我来详细解读一下各中的关系吧

首先看那个‘动物’矩形框,它就代表一个类(Class)。 类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。注意前面的符号,‘+’ 表示public,‘-’ 表示private,‘#’ 表示protected
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出

然后注意左下角的‘ 飞翔’,它表示-一个接口图,与类图的区别主要是顶端有<>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
接下来就讲类与类之间的关系了。首先看一下动物,鸟,鸭,唐老鸭之间的关系符号。他们都是由空心三角符号+实线来连接的。没错, 他们都是有继承关系,而继承关系就是由空心三角形+实线来表示。UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
图1中有几种鸟中,大雁是最能飞的,让他实现了飞翔接口。实现接口用空心三角+虚线来表示
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
再来看看企鹅和气候两个类,企鹅是很特别的鸟,会游不会飞。更重要的是,它与气候有很大的关联。我们不去讨论为什么北极没有企鹅,为什么它们要每年长途跋涉。总之,企鹅需要‘知道’ 气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联(association)。 关联关系用实线箭头来表示。
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
我们再来看大雁与雁群这两个类,大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation) 关系。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分[DPE] 。聚合关系用空心的菱形+实线箭头来表示。
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
合成(Composition, 也有翻译成‘组合’ 的)是一种强的‘ 拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样[DPE]。 在这里鸟和其翅膀就是合成(组合)关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。合成关系用实心的菱形+实线箭头来表示。另外,你会注意到合成关系的连线两端还有一一个数字‘1’ 和数字‘2’, 这被称为基数。表明这一端的类可以有几个实例,很显然,-个鸟应该有两只翅膀。如果一一个类可能有无数个实例,则就用’n’ 来表示。关联关系、聚合关系也可以有基数的。”
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
动物几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。他们之间是依赖关系(Dependency), 用虚线箭头来表示。
UML(Unified Modeling Language)类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)深入浅出
以上就是类图和常见的类图之间的关系。

原文地址: 白码驿站