实例剖析UML对象关系

开发 架构
在学习UML的时,你是否注意到UML对象之间的关系,如果没有那么久请看本文关于UML对象关系学习总结,相信通过本文的介绍你对UML对象关系一定会了如指掌。

本节向大家介绍一下UML对象关系学习总结,为了便于大家理解本节还通过实例向大家讲解,希望通过本节你能够学到更多的知识。下面就让我们一起来看一下UML对象关系的详细介绍吧。

UML对象关系学习总结

【UML对象关系之关联关系】

关联关系是一种最简单、最抽象的对象间关系描述。它只是描述了对象A于对象B之间存在一种业务上、概念上的逻辑关系,但是关联关系的双方不包含对方的属性。

【UML对象关系之聚合关系】

聚合关系是一种特殊的关联关系,除了具备关联关系的特性之外,还包括了以下的一些规则:

A. 对象A和对象B之间存在一种包含的关系

B. 对象A和对象B之间必有一方为“容器”,另外一方为“元素”。即“whole-part”关系

C. 容器方和元素方对象的生命周期是彼此独立的,并不依赖于对方而存在,也就是说是一

种“松散”的关联。容器和元素可以被独立创建、销毁,容器不存在了不影响元素的存在,元素不存在了容器可以依然存在

D. 容器方可以没有元素,也可以有一个至多个元素

E. 元素方可以“被包含于”一个容器,也可以“被包含于”多个容器

F. 向容器添加元素,或者从容器中移除元素并不影响容器

【UML对象关系之组合关系】

组合关系是一种特殊的聚合关系,除了具备关联关系、聚合关系的特性之外,还包括了以下的一些规则:

A. 容器方和元素方对象的生命周期是互相依赖的。即元素依赖于容器而存在,一旦容器不存在了那么元素也就不可能存在。容器必须优先于元素而被创建,元素必须优先于容器而被销毁。

B. 元素方只能“被包含于”一个容器

【UML对象关系之举例分析】

A. 关联关系的例子分析:

学生 ------------- 成绩

学生与成绩之间就是一个关联关系,你不能把学生的属性写到成绩对象中去,同理不能把成绩的属性写到学生对象中去,但两者之间确实存在一种业务上的联系,而且是固定的

B. 聚合关系的例子分析:

班级 ------------- 学生 /   汽车 ------------- 配件

班级与学生,汽车与配件之间的关系就是一个聚合关系。首先一个班级可以包含零至多个学生,一部汽车可以包含零(未组装之前)至多个配件。

其次学生可以先被创建,然后创建班级,再向班级中添加,移除学生。配件可以先被创建并保存到仓库,然后再组装成汽车。在班级,汽车对象没有形成之前,学生与配件的对

象可以已经存在(即容器和元素对象的生命周期是独立的)

C. 组合关系的例子分析:

基金账户 ------------- 单笔交易

基金账户与单笔交易就是一个组合关系。首先单笔交易必须依赖于基金账户而存在,也就是说我们必须先创建基金账户这个“容器方”,之后才能够创建单笔交易这个“元素方”,然后再把单笔交易挂到(添加)基金账户下。没有基金账户预先存在,我们不能执行单笔交易。我们不能先创建单笔交易,再创建基金账户,然后再挂靠交易。

这一点就不同于上面的班级与学生,汽车与配件的存在关系了。

其次单笔交易只能挂靠在某一个特定的基金账户下,也就是说元素方只能“被包含于一个”容器

【UML对象关系之延伸思考】

在对象和对象之间的关系中,有时会提到“依赖”关系,即对象A依赖于对象B而完成某项操作,那么这种关系是不是也属于“关联关系”呢?

个人认为这不属于一种“关联关系”。因为上面我们提到的三种关系中,每一种关系除了是固定的关系之外,还有一个重要的特点就是这些关系是需要“被持久化,被保存”起来的。

而依赖关系只是对象和对象之间的引用(或称调用)关系,这种关系只发生在运行期间而不是业务上,概念上的联系,并不需要被保存。所以“依赖关系”并不属于UML中的对象关系。

【编辑推荐】

  1. 深入剖析UML对象图
  2. 三大UML对象关系解析
  3. UML对象图和类图关系解析
  4. UML建模过程中需要注意要点专家提醒
  5. 体验免费UML建模工具

 

责任编辑:佚名 来源: zwcoom.com
相关推荐

2010-07-12 14:32:29

UML对象关系

2010-06-29 11:00:25

UML类图实例

2010-06-28 16:54:49

UML类图关系

2010-06-12 14:35:46

UML对象图

2010-06-09 13:06:22

UML业务建模实例

2010-06-29 12:55:44

UML类图依赖关系

2010-06-07 19:02:52

UML用例图

2010-06-17 18:47:18

UML对象关系

2009-07-20 13:27:01

UML对象关系

2010-07-12 10:15:11

UML对象图

2010-06-29 18:58:23

UML面向对象技术

2010-06-11 17:44:10

UML对象图

2010-06-09 09:41:33

UML类图

2010-07-08 15:56:52

UML类图依赖关系

2010-07-06 10:41:22

UML对象及关系图

2010-06-11 17:18:26

UML精粹

2010-07-05 09:48:00

UML类关系图

2010-06-11 18:09:26

UML对象图

2010-06-18 11:28:14

2010-06-13 10:19:24

面向对象技术与UML
点赞
收藏

51CTO技术栈公众号