学习之前先罗列一下学习框架地图. 方便今后的学习.
三种编程范式
面向过程
面向对象(最主流)
函数式编程(如go语言)
面向对象7大知识点
- 面向对象的四大特性: 封装, 抽象, 继承, 多态
- 面向对象编程与面向过程编程的区别和联系
- 面向对象分析, 面向对象设计, 面向对象编程
- 接口与抽象的区别以及各自的应用场景
- 基于接口而非实现编程的设计思想
- 多用组合少用继承的设计思想
- 面向过程的贫血模型和面向对象的充血模型.
设计原则
- SRP 单一职责原则
- OCP 开闭原则
- LSP 里式替换原则
- ISP 接口隔离原则
- DIP 依赖倒置原则
- 其它原则
- DRY 原则
- Don’t repeat yourself 不要重复自己
- 出现两次或多次的重复代码就需要提取出来
- KISS 原则
- Keep It Simple, Stupid 保持简单, 愚蠢
- KISS原则使代码简单、清晰、易于理解
- 编程语言是为人类所理解的
- 保证你的方法尽量很小;
- 每个方法都不应该超过40-50行代码
- 每个方法应该只解决一个小问题,而不是实现很复杂的功能
- YAGNI 原则
- You aren’t gonna need it 你不会需要它
- 这是“极限编程”提倡的原则,指的是你自以为有用的功能,实际上都是用不到的。
- LOD 原则
- 迪米特法则(Law of Demeter)又叫作最少知识原则
- 不和陌生人说话
- 迪米特法则的初衷在于降低类之间的耦合
- 门面模式(Facade)和中介模式(Mediator),都是迪米特法则应用的例子
- DRY 原则
设计模式
经典设计模式有23种.
大部份的设计模式要解决的都是代码的可扩展性问题.
可分为三大类
创建型
- 常用:
- 单例模式
- 工厂模式(工厂方法和抽象工厂)
- 建造者模式
- 不常用:
- 原型模式
- 常用:
结构型
- 常用:
- 代理模式
- 桥接模式
- 装饰者模式
- 适配器模式
- 不常用:
- 门面模式
- 组合模式
- 享元模式
- 常用:
行为型
- 常用:
- 观察者模式
- 模板模式
- 策略模式
- 职责链模式
- 迭代器模式
- 状态模式
- 不常用:
- 访问者模式
- 备忘录模式
- 命令模式
- 解释器模式
- 中介模式
- 常用:
编程规范
编程规范主要解决是代码可读性问题.
推荐书籍: «重构», «代码大全», «代码整洁之道»
- 变量命名
- 类命名
- 函数命名
- 代码注释
- 函数不宜过长
- 参数不能过多.
Tip: 代码的味道分为坏味道与好味道.
代码重构
重构是软件开发中非常重要的一个环节, 持续重构是保持代码质量不下降的有效手段, 能有效避免代码腐化到无可求药的地步.
重构分: 大重构和小重构.
重构的工具
- 面向对象设计思想
- 设计原则
- 设计模式
- 编码规范
3W1H
- 重构的目的(why)
- 重构的对象(what)
- 重构的时机(when)
- 重构的方法(how)
Tip: 开发之初, 除非特别必须, 我们一定不要过度设计,应用复杂的设计模式.而是在代码出现问题的时候, 我们再针对问题, 应用原则和模式进行重构, 这样就能有效避免前期的过度设计.
本教程来自学习王争 «设计模式之美» 笔记