面向对象分析与设计知识总结
考试内容
%50 教材涉及的基本概念
15% 根据业务需求设计简单的静态概念模型或静态设计模型
15% 重构
20% 设计模式
设计模式考试范围
策略模式(Strategy)
观察者模式(Observer)
具体工厂模式(Concrete Factory)
单实例模式(Singleton)
-
迭代器模式(Iterator)
-
装饰器模式(Decorator)
-
组合模式(Composite)
其中打星号的为补充的内容
PPT知识点(书中无对应点)
Chapter2.5 面向对象介绍
- 纯面向对象的编程语言并不能保证写出面向对象风格的程序,关键点在于程序的编写者是否符合面向对象的编程范式
- 使用延迟绑定的机制实现多态
- 每当你发现自己是通过查看了的内部实现来得知该如何使用这个类的时候,你就不是在针对接口编程了
Chapter22.1 测试驱动开发
- 传统测试方法及问题
- 测试往往不够完整,会导致遗漏错误
- 测试往往由专门的测试人员实施,他们对程序的细节往往不够熟悉
- 测试人员通常根据文档,而不是代码来觉得究竟要测试哪些内容,而这些文档很容易过期而与代码不一致
- 大多数的测试是基于手工的,不能够自动完成,因此无法经常执行
- 什么是测试驱动开发?
- 先写单元测试用例,再写代码
- 由测试来决定需要什么样的代码
- 由程序员编写和维护完整的测试用例集
- 仅当代码有了相应的测试代码,该代码才能作为成品代码
- 测试驱动开发的优点
- 能够保证编写单元测试
- 使得程序员获得满足感,从而始终如一地坚持编写测试
- 有助于澄清接口和行为的细节
- 可证明、可再现、可自动验证
- 改变事物的信心
- 编写测试用例时的几点注意事项
- 使用setup()和tearDown()来创建、初始化和释放测试用例之间公共的测试对象及所需的环境
- 确保测试没有副作用
- 确保测试用例之间没有依赖关系
- Mock对象的优缺点
- 优点:不需要运行的容器来执行测试
- 缺点:没有测试容器和组件之间的交互、没有测试组件的部署部分、需要对调用的API有很好的了解才能模拟它(这可能很困难)
Chapter21.2重构
- 布局和风格(Layout and Style)
- 良好的可视化布局显示程序的逻辑结构
- 编程工作的一小部分内容是让机器理解代码,大部分内容是让其他人能够读懂代码
- 良好布局的目标:准确表达代码的逻辑结构、一致地表示代码的逻辑结构、提高可读性、经得起修改
-
布局技术:空白符、括号、使用其他工具
-
Self-Documenting Code
- Programming Style as Documentation:代码级文档的主要贡献者不是注释&#x