写点什么

架构师训练营 -W03S- 代码重构

用户头像
BlazeLuLu
关注
发布于: 2020 年 06 月 23 日

设计模式

  • 设计模式是一种可重复使用的解决方案,对多态的应用。

设计模式的四个部分

  • 模式的名称

  • 待解问题

  • 解决方案

  • 结论

设计模式分类

  • 从功能分类

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

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

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

  • 从方式分

  • 类模式(不建议使用):以继承的方式实现模式,静态。

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

简单工厂模式

  • 使Clinet不依赖Sorter的具体实现。

  • 增加Sorter不影响Client,对Clinet实现开闭原则。

  • 增加Sorter需要修改Factory,对Factory未实现开闭原则。

单例模式

  • 保证产生单一实例,一个类只产生一个实例。

  • 使用单例模式的两个原因

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

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

适配器模式

  • 类的适配器

  • 对象的适配器

  • 系统需要使用现有的类,而这个类的接口与所需要的不同。

模版方法模式

  • 模版方法模式是扩展功能的最基本模式之一,是一种“类的行为模式”。

  • 通过“继承”的方法来实现扩展

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

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

  • 基于“继承”的模版方法比“组合”更容易实现。

  • 形式

  • 抽象方法

  • 具体方法

  • 钩子方法

策略模式

  • 策略模式是扩展功能的另一种最基本的模式,是一种“对象的行为模式”。

  • 通过“组合”的方法来实现扩展。

  • 定义一个接口抽象,应用程序根据抽象类进行编程开发,由多种具体实现完成。

  • 插件是策略模式的一种应用

  • 框架都是策略模式

装饰器模式

  • 是一种“对象的结构模式”。

  • 在不改变对客户端的接口的前提下(对客户端透明),扩展现有对象的功能。

组合模式

  • 是一种“对象的结构模式”。

  • 做树形结构处理。

  • 可以从树的任何一个节点执行。



用户头像

BlazeLuLu

关注

还未添加个人签名 2018.05.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-W03S-代码重构