重构 — 改善既有的类图设计 条款8:消除继承类和基类中重复的依赖关系
2008-06-12 13:56
302 查看
重构 — 改善既有的类图设计
条款8:消除继承类和基类中重复的依赖关系
黄国强 2008/5/12
大家再读本条条款之前,请先读一下“条款4:消除重复的依赖关系”。本条款目的和条款4,只是表现形式不同。见图 1。
图1
图中类1依赖于类3,类2也依赖于类3。在这里类2和类3之间是聚合关系,聚合关系的依赖方向是从菱形箭头指向直线的另一端。相当多的人把这个依赖关系搞反了。聚合关系的符号有一个演变之前,请看图2。相信看过这个图后,以后依赖关系应该不会搞错了。
图2
这里的重构是要消除重复的依赖关系,结果见图3。我们把类1和类3之间的依赖线拿掉了。
图3
条款8:消除继承类和基类中重复的依赖关系
黄国强 2008/5/12
大家再读本条条款之前,请先读一下“条款4:消除重复的依赖关系”。本条款目的和条款4,只是表现形式不同。见图 1。
图1
图中类1依赖于类3,类2也依赖于类3。在这里类2和类3之间是聚合关系,聚合关系的依赖方向是从菱形箭头指向直线的另一端。相当多的人把这个依赖关系搞反了。聚合关系的符号有一个演变之前,请看图2。相信看过这个图后,以后依赖关系应该不会搞错了。
图2
这里的重构是要消除重复的依赖关系,结果见图3。我们把类1和类3之间的依赖线拿掉了。
图3
相关文章推荐
- 重构 — 改善既有的类图设计 条款4:消除重复的依赖关系
- 重构 — 改善既有的类图设计 条款14:将多个继承类对外部的依赖上移至基类
- 重构 — 改善既有的类图设计 条款3:用 FACADE 类消除依赖关系的交叉
- 重构 — 改善既有的类图设计 条款12:消除聚合内部的返回参数的复制
- 重构 — 改善既有的类图设计 条款15:区分基类和接口
- 重构 — 改善既有的类图设计 条款1:将双向依赖改变成单向依赖
- 重构 — 改善既有的类图设计 条款11:去除对聚合内部的引用
- 重构 — 改善既有的类图设计 条款6:模块的防火墙
- 重构 — 改善既有的类图设计 条款7:为每个角色增加一个接口
- 重构 — 改善既有的类图设计 条款10:将多个接口的实现类合并成一个
- 重构 — 改善既有的类图设计 条款9:用Pimpl惯用法隐藏细节
- 重构 — 改善既有的类图设计 条款5:给工厂加一个代理
- 重构 — 改善既有的类图设计 条款16:每个类只包含两个聚合箭头
- 重构 — 改善既有的类图设计 条款2:流水不争先
- 重构 — 改善既有的类图设计 条款13:用观察者模式来维护概念的完整性
- 处理概括关系(读书摘要——重构改善既有代码的设计)
- UML 类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)
- 重构-改善既有代码的设计:处理概括关系 (九)
- UML 类图关系(继承,实现,依赖,关联,聚合,组合)