聚合:指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。
组合:也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。
聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。
我们用浅显的例子来说明聚合和组合的区别。“国破家亡”,国灭了,家自然也没有了,“国”和“家”显然也是组合关系。而相反的,计算机和它的外设之间就是聚合关系,因为它们之间的关系相对松散,计算机没了,外设还可以独立存在,还可以接在别的计算机上。在聚合关系中,部分可以独立于聚合而存在,部分的所有权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用
关联和聚合的区别主要在语义上,关联的两个对象之间一般是平等的,例如你是我的朋友,聚合则一般不是平等的,例如一个公司包含了很多员工,其实现上是差不多的。聚合和组合的区别则在语义和实现上都有差别,组合的两个对象之间其生命期有很大的关联,被组合的对象是在组合对象创建的同时或者创建之后创建,在组合对象销毁之前销毁。一般来说被组合对象不能脱离组合对象独立存在,而且也只能属于一个组合对象,例如一个文档的版本,必须依赖于文档的存在,也只能属于一个文档。聚合则不一样,被聚合的对象可以属于多个聚合对象,例如一个员工可能可以属于多个公司。
我想举个通俗的例子。
你和你的心脏之间是composition关系(心脏只属于你自己)
你和你买的书之间是aggregation关系(书可能是别人的)
你和你的朋友之间是association关系
关联与聚合的区别
关联关系所涉及的两个对象是处在同一个层次上的.比如人和自行国就是一种关联关系,而不是聚合关系.因为人不是由自行车组成的.
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分.比如电脑和它的显示器,键盘.订主板以及内在就是聚合关系,因为主板是电脑的组成部分.
分享到:
相关推荐
UML 聚合和组合的区别
UML类图中的关联、聚合和组合 UML类图中的关联、聚合和组合
UML中依赖泛化关联实现聚合组合的C#实现UML中依赖泛化关联实现聚合组合的C#实现
UML中依赖泛化关联实现聚合组合的Java实现
UML中依赖泛化关联实现聚合组合的C#实现_配UML图.doc
UML类关系-依赖,关联,聚合和组合 这几种关系很容易混淆,一个总结文档。
UML关系(泛化,实现,依赖,关联(聚合,组合))
UML学习之依赖_关联_聚合_组合_继承
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别 这是一堂关于UML基础知识的补习课;现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范 建模了...
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
UML中类图中的几个关系:关联、组合、聚 合、依赖关系
NULL 博文链接:https://newtime.iteye.com/blog/505170
NULL 博文链接:https://abcity.iteye.com/blog/1740763
32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32.16 受限关联 32.17 自反关联 32.18 使用包来组织...
32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32.16 受限关联 32.17 自反关联 32.18 使用包来组织...
UML类图关系泛化、继承、实现、依赖、关联、聚合、组合.doc
32.11 聚合关系和组合关系 32.12 时间间隔和产品价格—解决迭代1阶段的“错误” 32.13 关联角色名称 32.14 作为概念的角色与关联中的角色 32.15 导出元素 32.16 受限关联 32.17 自反关联 32.18 使用包来组织...
本文向大家简单介绍一下UML类图关系,UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。希望本文的介绍对你的学习有所帮助。
UML类图关系(泛化、继承、实现、依赖、关联、聚合、组合).doc
描述UML图的四种关系,有依赖,关联关系,还有关联中的聚合和组合关系的说明及用法