已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 关联双向关联 C1 C2 指双方都知道对方的存在 都可以调用对方的公共属性和方法 在GOF的设计模式书上是这样描述的 虽然在分析阶段这种关系是适用的 但我们觉得它对于描述设计模式内的类关系来说显得太抽象了 因为在设计阶段关联关系必须被映射为对象引用或指针 对象引用本身就是有向的 更适合表达我们所讨论的那种关系 所以这种关系在设计的时候比较少用到 关联一般都是有向的 使用C 生成的代码是这样的 classC1 publicC2theC2 classC2 publicC1theC1 双向关联在代码的表现为双方都拥有对方的一个指针 当然也可以是引用或者是值 单向关联 C3 C4 表示相识关系 指C3知道C4 C3可以调用C4的公共属性和方法 一般是表示为一种引用 生成代码如下 classC3 publicC4theC4 classC4 单向关联的代码就表现为C3有C4的指针 而C4对C3一无所知 自身关联 自己引用自己 带着一个自己的引用 C 代码如下 classC14 publicC14theC14 就是在自己的内部有着一个自身的引用 2 聚合 组合当类之间有整体 部分关系的时候 我们就可以使用组合或者聚合 聚合 表示C7聚合C8 但是C8可以离开C7而独立存在 独立存在的意思是在某个应用的问题域中这个类的存在有意义 这句话怎么解 请看下面组合里的解释 生成代码如下 classC7 publicC8theC8 classC8 组合 一般是实心菱形加实线箭头表示 如下图所示 表示的是C10被C9包容 而且C10不能离开C9而独立存在 但这是视问题域而定的 例如在关心汽车的领域里 轮胎是一定要组合在汽车类中的 因为它离开了汽车就没有意义了 但是在卖轮胎的店铺业务里 就算轮胎离开了汽车 它也是有意义的 这就可以用聚合了 生成代码如下 代码如下 classC9 publicC10theC10 classC10 可以看到 代码和聚合是一样的 具体如何区别 可能就只能用语义来区分了 3 依赖依赖 指C5可能要用到C6的一些方法 也可以这样说 要完成C5里的所有功能 一定要有C6的方法协助才行 C5依赖于C6的定义 注意 要避免双向依赖 一般来说 不应该存在双向依赖 生成代码如下 UsingC6的命名空间ClassC5 ClassC5 Using C6 依赖和聚合 组合 关联等有什么不同呢 关联是类之间的一种关系 例如老师教学生 这种关系是非常明显的 在问题领域中通过分析直接就能得出 依赖是一种弱关联 只要一个类用到另一个类 但是和另一个类的关系不是太明显的时候 可以说是 uses 了那个类 就可以把这种关系看成是依赖 依赖也可说是一种偶然的关系 而不是必然的关系 就是 我在某个方法中偶然用到了它 但在现实中我和它并没多大关系 例如我和粉笔 我和粉笔本来是没关系的 但在在黑板上写字的时候 我用到了它 这就是一种依赖 依赖粉笔完成这件事情 组合是一种整体 部分的关系 在问题域中这种关系很明显 直接分析就可以得出的 例如轮胎是车的一部分 树叶是树的一部分 手脚是身体的一部分这种的关系 非常明显的整体 部分关系 上述的几种关系 关联 聚合 组合 依赖 在代码中可能以指针 引用 值等的方式在另一个类中出现 不拘于形式 但在逻辑上他们就有以上的区别 4泛化 继承 泛化关系 如果两个类存在泛化的关系时就使用 例如父和子 动物和老虎 植物和花等 5类的多重性多重性说明了参与关联的对象的数目 多重性数值标注在每个关联端 多重性取值存在多重组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水产苗种病害防治措施
- 消防安全演练操作规程
- 港口维护脚手架租赁协议
- 展厅装修合同模板
- 赔偿协议书范本自愿赔偿
- 商务酒店无障碍设施建设指南
- 教育培训管理创新策略
- 建筑工程加固新施工合同范本
- 冷冻食品库房虫害防治策略
- 旅游公司客户隐私保密规则
- YY∕T 1838-2022 一次性使用末梢采血器
- 《企业财务分析》课程思政教学案例
- 教师(班主任)个人廉政风险点查找和防控措施表
- DB11T 2003-2022 蒸压加气混凝土墙板系统应用技术规程
- GB∕T 29626-2019 汽轮发电机状态在线监测系统应用导则
- 上消化道出血病历模板书写规范范文
- 第三章-农业资源调查评价与区划方法课件
- 基层医疗卫生机构结核感染预防与控制指南T∕CHATA 018-2022
- 国际集装箱多式联运:第6章 集装箱多式联运运价及费用计收
- Maya菜单中英文对照表(新)
- 食物中毒应急流程图
评论
0/150
提交评论