标签:
?
这几天在翻大规模C++程序设计,看到第5章。
?
?
用一个圆角的矩形表示。
?
?
?
?
?
?
?
?
?
?
?
?
说简单一点,就是
1 基础组件1 写单元测试。
2 基础组件2单元测试
3 高层组件1 带着基础组件1,基础组件2 做单元测试(这种行为书中叫增量测试)
4 高层组件2带着基础组件1,基础组件2座单元测试(增量测试)
5 不停的增量测试,类比的例子,测试汽车的基础零件,再测试汽车使用了基础零件的子系统(发动机?),….一直到测试整个汽车。
?
?
循环依赖,就是指,2个组件彼此引用对方。
?
?
?
?
?
如上图:
C1 有一个函数 返回C2的对象, C2 有一个函数 返回C1的对象。
C1和C2 是2个独立的组件。那么势必造成 编译时,C1,C2 必须相互链接。(增加链接开销)
测试时:无法单独测试C1 或者 C2 . 因为他们彼此依赖。这就是循环物理依赖,在系统中要尽可能小的循环依赖。
引入 一个新的类,成为 C1,C2的高层类。
? ?
? ?
? ? |
?
?
?
之前windows和 Retage相互依赖 windows可以隐式转换为Rectangle,Rectangle可以隐式转换为window
?
改进之后
?
这样就可以单独测试 windows ,retangle,boxutil,(似乎是增加了组件数量,而且转换也必须是显示的,但是为减少依赖,在大型项目中的链接时间,增加可测试性是值得的)
?
标签:
原文地址:http://www.cnblogs.com/songr/p/5273126.html