c++类与类的聚合(Aggregation)关系
c++类与类的聚合关系
- 聚合(Aggregation)关系
- 具体表现
- 关联与聚合的区别
- 代码表现
聚合(Aggregation)关系
当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。
具体表现
与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。
关联与聚合的区别
(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。
聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。
(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。
c++类与类的聚合(Aggregation)关系相关推荐
- UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。
结构元素 结构元素包括,类,对象,接口,用例,参与者. 类图 类图图示 类图是UML中最基本的元素了吧?根据OO的思想"天下一切皆对象",而类是对象的抽象. ...
- java uml 类图 加号_UML建模基础 UML类图的组成元素和关系解析
本文和大家重点讨论一下在UML建模中UML类图的java代码表现,主要包括UML类图元素和关系两大部分内容,相信通过本文的介绍你对UML类图的概念一定会与明确的认识. 在UML建模中UML类图的jav ...
- 区分 UML 类图中的几种关系
区分 UML 类图中的几种关系 2010-12-23 作者:fnw 来源:网络 区分 UML 类图中的几种关系 UML 类图中的 "关联关系(association) &qu ...
- 类与类之间的交互关系
类与类之间都哪些交互关系呢? UML 统一建模语言中定义了六种类之间的关系.它们分别是:泛化.实现.关联.聚合.组合.依赖.关系比较多,而且有些还比较相近,比如聚合和组合,接下来我就逐一讲解一下. 泛 ...
- c++类与类之间关系
类与类之间关系 类与类之间关系 UML表示和代码表示 类与类之间关系 类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下. 类与类之间存在以下关 ...
- 类与类之间关系,用C#和JavaScript体现
前言 在面向对象中,类之间的关系有六种,分别是: 关联关系(Association) 泛化关系(Generalization) 依赖(Dependency) 聚合(Aggregation) 组合(Co ...
- 类与类关系的UML图与代码表现
一 : 二 : 三 : 四 : 五 : 类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系: (1)泛化(Generalization) :狗与动物 (空箭头) (2)关联(Associa ...
- UML 类图、类与类之间关系
目录 类图 类的表示法 画类图 接口的表示法 类与类之间关系 泛化(Generalization)关系 依赖(Dependency) 关联(Association) 聚合(Aggregation) 组 ...
- Rose的 一些简单说明--类与类之间的关系、用例与用例之间的关系
1.uml中图的放置位置 注释: 用例视图 用例视图中包括了系统中的所有参与者.用例和用例图,必要时还可以在用例视图中添加顺序图.活动图等 逻辑视图 逻辑系统关注系统是如何实现用例中所描述的功能的,主 ...
最新文章
- c swap方法在哪个库里面_在编程竞赛中高效地编写C/C ++代码
- 一起谈.NET技术,自动更新组件分享
- 如果类是个泛型类的话dllImport 代码不能编译
- kubernetes学习笔记之七: Ingress-nginx 部署使用
- (Mirage系列之五)Mirage经典案例之桌面驱动和基础层管理
- 抖音提示需要转换为mp4_如何将MP4文件转换为MP3格式?万兴优转帮你轻松完成转换...
- java 转jsp_【转】JSP三种页面跳转方式
- Android OpenSL ES 对象结构
- shell_exec() php 执行shell脚本
- 如何将stdin、stdout、stderr重定向到/dev/null
- IntelliJ IDEA使用技巧(四)——设置默认Maven的方法
- MTK 三星处理器一览表
- isis协议_[IS-IS] IS-IS路由协议的基本知识及配置
- 产品经理面试题汇总(1)
- balenaEtcher for mac(U盘启动盘制作工具)
- CVE-2017-0199——首个Microsoft Office RTF漏洞
- 与门,或门,与非门,异或门的python实现
- 乐山持点科技:抖音极速版电商入驻指南
- 异常问题-NXP的Flash锁死后无法烧录
- C#Winform 实现控件自适应父容器大小
热门文章
- java引用传递关键字_Java值传递和引用传递
- python tkinter输入框_python TKinter获取文本框内容的方法
- python 深拷贝_详解python的复制,深拷贝和浅拷贝的区别
- boost::type_erasure::tuple相关的测试程序
- boost::statechart模块实现类型信息测试
- boost::enable_shared_from_this相关的测试程序
- boost::intrusive::function_hook用法的测试程序
- boost::hana::arg用法的测试程序
- GDCM:读取流图像的测试程序
- boost::core模块cmath相关测试程序