【第三周】代码重构
一. 面向对象的设计模式
作用:
定义
可重复使用的通用解决方案
四个部分:名称、待解决问题、解决方案、利弊
分类
从功能分:
创建模式:对类的实例化过程的抽象
结构模式:将类或者对象结合在一起形成更大的结构
行为模式:对在不同的对象之间划分责任和算法的抽象化
从方式分:
类模式: 以继承的方式实现模式,静态的
对象模式: 以组合的方式实现模式,动态的
二、各种设计模式
工厂模式:
简单工厂模式
改进工厂模式
抽象工厂模式
单例模式:
保证产生单一实例
使用原因:
性能需求:减少实例频繁创建和销毁带来的资源消耗
功能需求:当多个用户使用这个实例的时候,便于进行统一控制
分类:
懒汉式:高并发情况下要加同步锁
饿汉式
适配器模式:
对类和对象的适配
模板方法模式:
类的行为模式
通过继承的方法来实现拓展
基类负责算法的轮廓和骨架
子类负责算法的具体实现
实现形式:
抽象方法:强制子类实现某个步骤
具体方法:子类覆盖
钩子方法:基类的实现为空
策略模式:
对象的行为模式
通过组合的方法来实现拓展
使用场景: 系统需要子多种算法中选择一种
优点:将使用策略的人和策略的具体实现分离, 策略对象可以自由组合
组合模式:
对象的结构模式
装饰器模式:
对象的结构模式
作用:不改变对客户端的接口的前提下,拓展现有对象的功能
和模板方法、策略模式的比较:
装饰器拓展外围功能
模板方法和策略模式保持框架不变。拓展内部实现
和继承的比较:
装饰器是动态的,继承是静态的
装饰器可以任意组合
评论