设计模式学习笔记
- 面向对象、设计原则、设计模式、编程规范、重构之间的关系
面向对象、设计原则、设计模式、编程规范、重构之间的关系
- 面向对象
现在,主流的编程范式或者是编程风格有三种:面向过程、面向对象和函数式编程。
需要掌握七大知识点:
1、面向对象的四大特性:封装、抽象、继承、多态
2、面向对象编程与面向过程编程的区别和联系
3、面向对象分析、面向对象设计、面向对象编程
4、接口和抽象类的区别以及各自的应用场景
5、基于接口而非实现编程的设计思想
6、多用组合少用继承的设计思想
7、面向过程的贫血模型和面向对象的充血模型 - 设计原则
SOLID原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则
DRY 原则、KISS 原则、YAGNI 原则、LOD 法则 - 设计模式
设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。大部分设计模式要解决的都是代码的可扩展性问题。
经典的设计模式有 23 种,分为创建型、结构型、行为型三大类。随着编程语言的演进,一些设计模式(比如 Singleton)也随之过时,甚至成了反模式,一些则被内置在编程语言中(比如 Iterator),另外还有一些新的模式诞生(比如 Monostate)。有些模式是比较常用,要花多点时间理解掌握,对于不常用的设计模式,我们只需要稍微了解即可。
1、创建型
常用的有:单例模式(singleton)、工厂模式(工厂方法factory method和抽象工厂abstract factory)、建造者模式(builder)。
不常用的有:原型模式(prototype)。
2、结构型
常用的有:代理模式(proxy)、桥接模式(bridge)、装饰者模式(decorate)、适配器模式(adapter)。
不常用的有:外观模式(facade)、组合模式(composite)、享元模式(Flyweight)。
3、行为型
常用的有:观察者模式(observer )、模板模式(template)、策略模式(strategy)、职责链模式(chain of responsibility)、迭代器模式(iterator)、状态模式(state)。
不常用的有:访问者模式(visitor)、备忘录模式(memento )、命令模式(command)、解释器模式(interpreter )、中介模式(mediator )。 - 编程规范
编程规范主要解决的是代码的可读性问题。对于编码规范,很多书籍比如《重构》《代码大全》《代码整洁之道》等讲得很好,可以参考。 - 代码重构
重构是软件开发中非常重要的一个环节。持续重构是保持代码质量不下降的有效手段,能有效避免代码腐化到无可救药的地步。重构的工具就是我们前面罗列的那些面向对象设计思想、设计原则、设计模式、编码规范。需要掌握的知识点有:
1、重构的目的(why)、对象(what)、时机(when)、方法(how);
2、保证重构不出错的技术手段:单元测试和代码的可测试性;
3、两种不同规模的重构:大重构(大规模高层次)和小重构(小规模低层次)。 - 五者之间的联系
面向对象、设计原则、设计模式、编程规范、代码重构,这五者都是保持或者提高代码质量的方法论,本质上都是服务于编写高质量代码这一件事的。