设计模式:合成聚合
2013-12-19 10:29
274 查看
设计模式原则—合成/聚合复用原则(四)
阅读目录
一:合成/聚合复用原则
二:什么是合成?
三:什么是聚合?
四:为什么尽量不要使用类继承而使用合成/聚合?
五:合成/聚合复用原则结构图
一:合成/聚合复用原则
尽量使用合成/聚合,尽量不要使用类继承
二:什么是合成?
. 合成表示一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样,打个比方:人有两个胳膊,胳膊和人就是部分和整体的关系,人去世了,那么胳膊也就没用了,也就是说胳膊和人的生命周期是相同的
. 合成关系用实心的菱形+实线来表示
三:什么是聚合?
[b]. [/b]聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但是B对象并不是A对象的一部分,打个比方:人是群居动物,所以每个人属于一个人群,一个人群可以有多个人,所以人群和人是聚合的关系
. 聚合关系用空心的菱形+实线来表示
四:为什么尽量不要使用类继承而使用合成/聚合?
. 对象的继承关系在编译时就定义好了,所以无法在运行时改变从父类继承的子类的实现
. 子类的实现和它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化
. 当你复用子类的时候,如果继承下来的实现不适合解决新的问题,则父类必须重写或者被其它更适合的类所替换
这种依赖关系限制了灵活性,并最终限制了复用性
五:合成/聚合复用原则结构图
1和2以及n,被称为基数,表示这一端的类可以有几个实例,很显然,一个人有两个胳膊,如果一个类可能有无数个实例,则用n表示,一人群可能有无数个人
举例和生活相结合,做一条快乐的小<。)#)))≦儿
阅读目录
一:合成/聚合复用原则
二:什么是合成?
三:什么是聚合?
四:为什么尽量不要使用类继承而使用合成/聚合?
五:合成/聚合复用原则结构图
一:合成/聚合复用原则
尽量使用合成/聚合,尽量不要使用类继承
二:什么是合成?
. 合成表示一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样,打个比方:人有两个胳膊,胳膊和人就是部分和整体的关系,人去世了,那么胳膊也就没用了,也就是说胳膊和人的生命周期是相同的
. 合成关系用实心的菱形+实线来表示
三:什么是聚合?
[b]. [/b]聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但是B对象并不是A对象的一部分,打个比方:人是群居动物,所以每个人属于一个人群,一个人群可以有多个人,所以人群和人是聚合的关系
. 聚合关系用空心的菱形+实线来表示
四:为什么尽量不要使用类继承而使用合成/聚合?
. 对象的继承关系在编译时就定义好了,所以无法在运行时改变从父类继承的子类的实现
. 子类的实现和它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化
. 当你复用子类的时候,如果继承下来的实现不适合解决新的问题,则父类必须重写或者被其它更适合的类所替换
这种依赖关系限制了灵活性,并最终限制了复用性
五:合成/聚合复用原则结构图
1和2以及n,被称为基数,表示这一端的类可以有几个实例,很显然,一个人有两个胳膊,如果一个类可能有无数个实例,则用n表示,一人群可能有无数个人
举例和生活相结合,做一条快乐的小<。)#)))≦儿
相关文章推荐
- xcode5改变模拟器size
- SharePoint 2013 入门教程 [不断更新~]
- GlassFish v2 虚拟主机配置感悟
- C语言——字符与字符串
- Oracle 插入超4000字节的CLOB字段的处理方法
- 重装MySQL出现start service故障问题解决及10061问题
- 如何实现android ScrollView ListView的回弹效果
- JAVAEE入职后到底都在干啥——常见入职疑惑解答(一)
- XNA入门教程----(一)
- codeforce 374A 网格图最短路走法
- 不用循环输出99乘法表
- String.Remove
- (Relax DFS专题1.2)POJ 2386 Lake Counting(使用DFS来计算有多少坨东西是连通的)
- fatal: the remote end hung up unexpectedly
- 创业_1
- 详解结构体、类等内存字节对齐
- 用二叉树实现计算器
- GCD(Grand Central Dispatch)和Block 使用-浅析
- ios本地通知和远程通知
- ubuntu英文版变成中文版