UML——四种关系

         在画类图之前,首先要理清UML中的四种关系,常见的有以下四种关系: 泛化(Generalization),  实现(Realization),关联(Association),依赖(Dependency),而在关联中又包括:聚合(Aggregation),组合(Composition),在这几种关系中他们又有剪不断的联系。

一、概念

【泛化】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。箭头指向:带三角箭头的实线,箭头指向父类。

【实现】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。箭头指向:带空心三角箭头的虚线,箭头指向接口。

【关联】:是一种拥有的关系,它使一个类知道另一个类的属性和方法。箭头指向:实线箭头。

【聚合】:表示整体对象拥有部分对象。箭头指向:空心菱形+实线箭头。

【组合】:聚合的一种形式,它具有更强的拥有关系,强调整体与部分的生命周期是一致的。箭头指向:实心菱形+实现箭头。

【依赖】:是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)。箭头指向:虚线箭头。

二、实例介绍

【泛化】鸟属于动物,它具有动物的特征同时还具有自己特有的功能。

【实现】:大雁实现飞翔的接口。

【关联】:企鹅和气候,企鹅生活在南极,它需要这种气候才能生活,企鹅需要‘知道’气候的变化,‘了解’气候规律。

【聚合】:电脑和外接键盘,两者可以独立存在。

【组合】:鸟和翅膀的关系,不能独立存在。

【依赖】:动物要生存需要依赖于氧气,水和食物。

三、PK赛

1、【聚合】PK【组合】

相同点:两者都表示‘拥有’的关系,区别:生命周期的长短。

【聚合】:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,他们的生命周期或许是不同的,A对象不随着B对象的消失而消失,两者可以独立存在。

【组合】:表示一种强的‘拥有’,他们是部分和整体的关系,他们的生命周期是相同的,A对象会随着B对象的消失而消失,二者是不能独立存在的。

关系强弱比较:组合>聚合

2、【泛化】PK【实现】

相同点:相当于继承。 子类继承父类,父类泛化子类。

关系强弱比较:泛化=实现

3、【关联】PK【依赖】

相同点:都表示依赖关系。区别:类之间关系的强弱程度和类之间关系的时间长短。

【关联】表示类之间的很强的关系,它表示类之间的“持久”关系,这种关系一般表示一种重要的业务之间的关系,需要保存的,或者说需要“持久化”的,或者说需要保存到数据库中的。

【依赖】表示类之间的较弱的关系,它表示类之间的是一种“临时、短暂”关系,这种关系是不需要保存的。

关系强弱比较:关联>依赖

得到关系强弱的比较:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

四、小结

       初次学习UML,对四种关系了解的还不是很深,在c#,设计模式中都有提到UML的四种关系和九种图,相信通过反复的学习,一定可以加深对他们的理解。

时间: 2024-10-16 02:16:34

UML——四种关系的相关文章

【菜鸟也疯狂UML系列】——浅析UML四种关系

在UML中.关系是很重要的.它抽象出对象之间的联系,让对象构成某个联系起来的结构.以下将简要分析一下UML中的四种关系:关联.依赖,泛化,实现. 一.举例罗列 1.关联(Association) 关联是用来连接有结构关系的对象,能够连接同样类或者不同类.也能够是双向关联和单向关联. 举例说明: 单向关联:人打开电视机.是一个单向关联. 双向关联:人和公司的关系,人是公司的雇员,公司是人的雇主.(1个公司有0或者n个雇员) watermark/2/text/aHR0cDovL2Jsb2cuY3Nk

UML中类图的四种关系及其代码实现

在uml图中 最复杂的也就是泛化,实现,依赖,关联,这四种关系了,如果弄清了这几种关系那么在理解UML图的时候就会变得轻车熟路了! 如果你对着几种关系一点都不熟悉的话可以看一下uml中的四种关系,这篇博客简单的介绍了一下这几种关系,本文将重点的介绍一下,这几种关系在代码里如何实现的! 泛化关系 我想这个也可能是最简单的关系了,泛化就是特殊到一半的过程,也就是继承的相反的过程,子类继承自父类,而父类是从子类泛化而来! 泛化(generalization)关系是一个类(称为子类.子接口)继承另外的一

浅谈JavaEE中的Hibernate中的四种关系映射(三)

今天我们一起来探讨一下有关Hibernate四种关系映射,大家可能会有疑惑,关系映射不就是只有三种(一对一,一对多,多对多)吗?这里我们再多说一个继承映射关系,虽然它使用频繁度没有前三个那么多,但是它在一些特定情况下,还是非常有用的,至于有什么用下面马上就要讲.这些关系映射实际上就是对应着关系型数据库中的几种关系的类型.我们都知道Hibernate的作用是将面向关系数据操作,转换成面向对象的操作,其中关系映射文件就是实现这个转换的核心.我们都知道如果我们仅仅使用SQL语句建表并且去维护表与表之间

uml的四种关系

UML的四种常用关系: 泛化关系.关联关系.实现关系.依赖关系 其中泛化关系是指父类与子类之间的继承关系: 实现关系是指接口与实现类之间的关系: 依赖关系和关联关系的区别如下: 只要存在对象间的交互,无论是控制的还是数据的,两者之间就存在依赖.我们现在说的依赖,它是比关联更弱的关系. 依赖是对象间短暂的一种关系,在这个短暂的关系中,被调用类表现为调用类的局部变量.方法的参数.以及调用类调用被调用类的静态方法,在这些情况下,我们说调用类和被调用类之间就属于依赖关系. 关联是对象间长期的一种关系,在

UML中的四种关系总结

UML中的关系主要包括四种:关联关系.依赖关系.泛化关系.实现关系.其中关联关系还包括聚合关系和组合关系. 1. 关联关系(Association) 关联关系式一种结构化的关系,是指一种对象和另一种对象有联系.给定关联的两个类,可以从其中的一个类的对象访问到另一个类的相关对象.关联关系用一条实线表示. 示例 1.1.  聚合关系(Aggregation) 聚合是关联的特例.聚合是表示整体与部分的关系,即has a 关系.聚合关系中的整体和部分是可以分离的,他们可以具有各自的生命周期,部分可以数据

(UML总结一)四种关系

UML统一建模语言是用来设计软件蓝图的可视化建模语言.支持面向对象系统的分析.设计.实现和交付等各个环节,可以用于系统的理解.设计.浏览.维护和信息控制.UML是由基本构造块.规则和其中的公共机制组成. UML的基本构造块包括事物.关系和图.事物是构成模型图的一些基本图示标识,标识一些面向对象的基本概念.关系是基本图示符号之间的关系.图是从特定的视角对系统所做的抽象描述. 最让人头疼的就是四种基本的关系:关联.依赖.泛化.实现.如图,关联还有特殊情况:聚合和组合. 一.下面让我们先从理论上来理解

盘点UML中的四种关系

生活中,我们既是独立的个体,又通过联系形成各种关系,比如说:朋友,恋人,父子,同学--于是乎,出现了神乎其神的六人定律.那么在UML中又存在什么样的关系呢?下面我们来梳理一下. 关联(Association) 描述了两个或多个类之间的结构性关系. 图示:直线或直线+箭头 双向关联: 指双方都知道对方的存在,都可以调用对方的公共属性和方法. 箭头及指向:双向的关联可以有两个箭头或者没有箭头 例1:公司和人 将来在Person类中会有属性名为employer,类型为Company ;在Company

类之间的四种关系

类间关系有很多种,在大的类别上可以分为两种:纵向关系.横向关系. 纵向关系就是继承关系,它的概念非常明确,也成为OO的三个重要特征之一,这里不过多的讨论. 横向关系较为微妙,按照UML的建议大体上可以分为四种: 依赖    (Dependency) 关联    (Association) 聚合    (Aggregation) 组合    (Composition) 它们的强弱关系是没有异议的:依赖 < 关联 < 聚合 < 组合 然而它们四个之间的差别却又不那么好拿捏,需要好好体会. 依

UML中的四种关系

一.Association关联关系 说明:Assocition(关联):描述了两个或多个类之间的结构性关系. (1)普通关联: 1)Association name名称:用以描述该关系的性质. 2)Role角色:当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角色:角色是关联中靠近它的一端的类对另外一端的类呈现的职责. 3)Multiplicity多重性:关联角色的多重性是说明一个关联的实例中有多少个相互连接的对象. 例如(): Public Class Person Privat