读书笔记: 测试驱动的面向对象软件开发

https://book.douban.com/people/fleure/annotation/4910582/

组合比它的部分之和更简单

<原文开始>当把一些对象组合成一个新类型时,我们希望新的类型所表现出来的行为比所有组成部分的行为之和更简单。</原文结束> <原文开始>组合对象的 API 不应该比它的组件的 API 更复杂。</原文结束> ## 对象同级构造性 <原文开始>依赖关系:对象向它的同级请求服务,这样对象就能实现它的职责。没有这些服务,对象就不能工作。 通知关系:同级对象需要及时了解对象的活动。 调整关系:同级对象会调整该对象的行为,以适应系统更多的需求。 </原文结束> <原文开始>我们坚持依赖关系要在构造方法中传入,但通知关系和调整关系可以设为默认值,以后再做调整。</原文结束> ## 聆听测试 <原文开始>我们发现,让对象容易测试的那些品质,也让代码更容易响应变化。</原文结束> <原文开始>单例是依赖关系。</原文结束> <原文开始>面向对象作为一种组织代码的技术,它的一个目标就是让对象的边界清晰可见。</原文结束> <原文开始>如果单元测试工具让程序员绕过了设计中糟糕的依赖关系管理,那就丧失了宝贵的反馈关系。</原文结束>