【第三周】代码重构

用户头像
云龙
关注
发布于: 2020 年 10 月 08 日

一. 面向对象的设计模式

  • 作用:



  • 定义

  • 可重复使用的通用解决方案

  • 四个部分:名称、待解决问题、解决方案、利弊

  • 分类

  • 从功能分:

  • 创建模式:对类的实例化过程的抽象

  • 结构模式:将类或者对象结合在一起形成更大的结构

  • 行为模式:对在不同的对象之间划分责任和算法的抽象化

  • 从方式分:

  • 类模式: 以继承的方式实现模式,静态的

  • 对象模式: 以组合的方式实现模式,动态的



二、各种设计模式

  • 工厂模式:

  • 简单工厂模式

  • 改进工厂模式

  • 抽象工厂模式

  • 单例模式:

  • 保证产生单一实例

  • 使用原因:

  • 性能需求:减少实例频繁创建和销毁带来的资源消耗

  • 功能需求:当多个用户使用这个实例的时候,便于进行统一控制

  • 分类:

  • 懒汉式:高并发情况下要加同步锁

  • 饿汉式

  • 适配器模式:

  • 对类和对象的适配

  • 模板方法模式:

  • 类的行为模式

  • 通过继承的方法来实现拓展

  • 基类负责算法的轮廓和骨架

  • 子类负责算法的具体实现

  • 实现形式:

  • 抽象方法:强制子类实现某个步骤

  • 具体方法:子类覆盖

  • 钩子方法:基类的实现为空

  • 策略模式:

  • 对象的行为模式

  • 通过组合的方法来实现拓展

  • 使用场景: 系统需要子多种算法中选择一种

  • 优点:将使用策略的人和策略的具体实现分离, 策略对象可以自由组合

  • 组合模式:

  • 对象的结构模式

  • 装饰器模式:

  • 对象的结构模式

  • 作用:不改变对客户端的接口的前提下,拓展现有对象的功能

  • 和模板方法、策略模式的比较:

  • 装饰器拓展外围功能

  • 模板方法和策略模式保持框架不变。拓展内部实现

  • 和继承的比较:

  • 装饰器是动态的,继承是静态的

  • 装饰器可以任意组合



用户头像

云龙

关注

还未添加个人签名 2018.03.30 加入

还未添加个人简介

评论

发布
暂无评论
【第三周】代码重构