面向对象
- 面向对象的四大特性:封装、抽象、继承、多态
- 面向对象编程与面向过程编程的区别和联系
- 面向对象分析、面向对象设计、面向对象编程
- 接口和抽象类的区别以及各自的应用场景
- 基于接口而非实现编程的设计思想
- 多用组合少用继承的设计思想
- 面向过程的贫血模型和面向对象的充血模型
设计原则
- SOLID原则 - SRP单一职责原则
- SOLID原则 - OCP开闭原则
- SOLID原则 - LSP里式替换原则
- SOLID原则 - ISP接口隔离原则
- SOLID原则 - DIP依赖倒置原则
- DRY原则、KISS原则、YAGNI原则、LOD法则
设计模式
分为三大类:创建型、结构型、行为型
1. 创建型
常用:单例模式、工厂模式(工厂方法和抽象工厂)、创造者模式
不常用:原型模式
2. 结构型
常用:代理模式、桥接模式、装饰者模式、适配器模式
不常用的有:门面模式、组合模式、享元模式
3. 行为型
常用:观察者模式、模板模式、策略模式、职责链模式、迭代器模式、状态模式
不常用:访问者模式、备忘录模式、命令模式、解释器模式、中介模式
编程规范
掌握最能改善代码质量的20条规范
代码重构
- 重构的目的(why)、对象(what)、时机(when)、方法(how)
- 保证重构不出错的技术手段:单元测试和代码的可测试性
- 两种不同规模的重构:大重构(大规模高层次)和小重构(小规模低层次)
五者之间的联系
- 面向对象编程是设计原则、设计模式的基础
- 设计原则是知道我们代码设计的一些经验总结
- 设计模式针对开发种场景总结出来的解决方案,比设计原则更加具体,具备可实现性
- 编程规范解决代码的可读性问题
- 重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编码规范的理论
思考题
1 - 觉得哪一部分内容对提高代码质量最有效?为什么?除了我罗列的这些内容之外,你还知道哪些可以提高代码质量的方法?
2 - 最经典的设计模式书籍是 GoF 的《设计模式》,它的中文全称是《设计模式:可复用面向对象软件的基础》,英文全称是“Design Patterns: Elements of Reusable Object-Oriented Software”。为什么它在标题中会特意提到“面向对象”呢?
答案:
1 - 我认为编程规范对代码质量提升最为有效。可能观点比较偏激,就是我们不懂设计模式的概念。在保证代码可读性的基础上,也能凸显出代码的功能。
在保证代码可读性的基础上,掌握设计模式的思想,才是王道!!!
2 - 面向对象是设计原则,设计模式的基础