重构 — 改善既有的类图设计 条款6:模块的防火墙
2008-05-27 17:07
477 查看
重构 — 改善既有的类图设计
条款6:模块的防火墙
黄国强 2008/5/27
图 1
看图 1 ,一个模块由A、B、C 三个类 组成,外部类可以访问类 A 。从图上看,外部类通过类 A 开始的依赖箭头可以访问到类 B 和 C 。显然这个模块的细节也暴露给外部类了。
如果在设计上不想让外部类看到这个模块的细节,如何我们应该如何做到这点呢?请看图 2 。
图 2
从图 2 看出,外部类只能看到类 A_Factory_Proxy、I_A_Factory 和 InterFace_A 。类 A、B、C 对外部类来说是不可见的。这里出现的类 InterFace_A 起到了防火墙的作用。工厂代理类 A_Factory_Proxy 的解释请看“条款 5 ”的描述。
条款6:模块的防火墙
黄国强 2008/5/27
图 1
看图 1 ,一个模块由A、B、C 三个类 组成,外部类可以访问类 A 。从图上看,外部类通过类 A 开始的依赖箭头可以访问到类 B 和 C 。显然这个模块的细节也暴露给外部类了。
如果在设计上不想让外部类看到这个模块的细节,如何我们应该如何做到这点呢?请看图 2 。
图 2
从图 2 看出,外部类只能看到类 A_Factory_Proxy、I_A_Factory 和 InterFace_A 。类 A、B、C 对外部类来说是不可见的。这里出现的类 InterFace_A 起到了防火墙的作用。工厂代理类 A_Factory_Proxy 的解释请看“条款 5 ”的描述。
相关文章推荐
- 重构 — 改善既有的类图设计 条款15:区分基类和接口
- 重构 — 改善既有的类图设计 条款14:将多个继承类对外部的依赖上移至基类
- 重构 — 改善既有的类图设计 条款10:将多个接口的实现类合并成一个
- 重构 — 改善既有的类图设计 条款4:消除重复的依赖关系
- 重构 — 改善既有的类图设计 条款7:为每个角色增加一个接口
- 重构 — 改善既有的类图设计 条款13:用观察者模式来维护概念的完整性
- 重构 — 改善既有的类图设计 条款11:去除对聚合内部的引用
- 重构 — 改善既有的类图设计 条款9:用Pimpl惯用法隐藏细节
- 重构 — 改善既有的类图设计 条款12:消除聚合内部的返回参数的复制
- 重构 — 改善既有的类图设计 条款3:用 FACADE 类消除依赖关系的交叉
- 重构 — 改善既有的类图设计 条款5:给工厂加一个代理
- 重构 — 改善既有的类图设计 条款8:消除继承类和基类中重复的依赖关系
- 重构 — 改善既有的类图设计 条款1:将双向依赖改变成单向依赖
- 重构 — 改善既有的类图设计 条款2:流水不争先
- 重构 — 改善既有的类图设计 条款16:每个类只包含两个聚合箭头
- PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
- 重构HTML改善Web应用设计
- 重构:改善既有代码的设计 要点总结
- 重构—改善既有代码的设计
- “重构-改善既有代码的设计”笔记