组合与聚合
来源:互联网 发布:知乎 装修 编辑:程序博客网 时间:2024/05/16 09:22
聚合:指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。组合:也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。我们用浅显的例子来说明聚合和组合的区别。“国破家亡”,国灭了,家自然也没有了,“国”和“家”显然也是组合关系。而相反的,计算机和它的外设之间就是聚合关系,因为它们之间的关系相对松散,计算机没了,外设还可以独立存在,还可以接在别的计算机上。在聚合关系中,部分可以独立于聚合而存在,部分的所有权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用关联和聚合的区别主要在语义上,关联的两个对象之间一般是平等的,例如你是我的朋友,聚合则一般不是平等的,例如一个公司包含了很多员工,其实现上是差不多的。聚合和组合的区别则在语义和实现上都有差别,组合的两个对象之间其生命期有很大的关联,被组合的对象是在组合对象创建的同时或者创建之后创建,在组合对象销毁之前销毁。一般来说被组合对象不能脱离组合对象独立存在,而且也只能属于一个组合对象,例如一个文档的版本,必须依赖于文档的存在,也只能属于一个文档。聚合则不一样,被聚合的对象可以属于多个聚合对象,例如一个员工可能可以属于多个公司。我想举个通俗的例子。(摘自百度知道)
0 0
- 聚合与组合
- 聚合与组合
- 聚合与组合
- 聚合与组合
- UML聚合与组合
- 组合与聚合
- 组合与聚合
- 组合与聚合的关系
- 组合与聚合的区别
- 聚合与组合的区别
- 聚合与组合的区别
- 聚合与组合的区别?
- java中的组合与聚合
- 聚合与组合的区别?
- 类的组合与聚合
- 聚合与组合的区别
- 聚合与组合的区别
- 聚合关系与组合关系
- Promise系列02:Promise创建
- ffmpeg 继续学习 -- ARM优化-- AArch64
- 二、linux vi编辑常用命令
- 用 python 写验证码的例子
- .Net运行环境问题,3.5无法很好的运行在4.0下
- 组合与聚合
- redis中各种数据类型对应的jedis操作命令
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- PHP学习-数据库连接
- Servlet中的过滤器Filter详解
- Error:Cause: com.android.sdklib.repository.FullRevision
- Volley的网络请求有内存溢出现象
- xml基础
- Android笔记之LayoutInflater