写点什么

Week3 - 代码重构

用户头像
evildracula
关注
发布于: 2020 年 11 月 07 日

设计模式

设计模式定义

什么是设计模式

  • 每一种模式都描述了一种问题的通用解决方案。这种问题在我们的环境中,不停地出现。

  • 设计模式是一种可重复使用的解决方案。

一个设计模式的四个部分:

  • 模式的名称 - 由少量的字组成的名称,有助于我们表达我们的设计。

  • 待解问题 - 描述了何时需要运用这种模式,以及运用模式的环境(上下文)。

  • 解决方案 - 描述了组成设计的元素(类和对象)、它们的关系、职责以及合作。但这种解决方案是抽象的,它不代表具体的实现。

  • 结论 - 运用这种方案所带来的利和弊。主要是指它对系统的弹性、扩展性、和可移植性的影响。


设计模式的分类

从功能分

  • 创建模式(Creational Patterns)

  • 对类的实例化过程的抽象

  • 结构模式(Structural Patterns)

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

  • 行为模式(Behavioral Patterns)

  • 对在不同的对象之间划分责任和算法的抽象化


从方式分

  • 类模式

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

  • 对象模式

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

单例模式

Singleton 模式保证产生单一实例,就是说一个类只产生一个实例。使用 singletong 有两个原因:

  • 是因为只有一个实例,可以减少频繁创建和销毁带来的资源损耗

  • 是当多个用户使用这个实例的时候,便于进行统一控制(比如打印机对象)。


适配器

模式

类的适配器,对象的适配器


作用

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


策略模式

策略模式是扩展功能的另一种最基本的模式,它是一种“对象的行为模式”。它通过“组合”的方式来实现扩展。


使用策略模式的时机

系统需要在多种算法中选择一种

重构系统时,

  • 将条件语句转换成对于策略的多态性调用

策略模式的优点

  • 将使用策略的人与策略的具体实现分离• 策略对象可以自由组合

策略模式可能存在的问题

• 策略模式仅仅封装了“算法的具体实现”,方便添加和替换算法。但它并不关心何时使用何种算法,这个必须由客户端来决定。


组合模式

组合模式是一种“对象的结构模式”


装饰器模式

装饰器模式是一种“对象的结构模式”,起作用:

  • 在不改变对客户端的接口的前提下(对客户端透明)

  • 扩展现有对象的功能


装饰器模式也被笼统地称为“包装器”(Wrapper)

  • 适配器也被称作“包装器”,区别在于适配器是转换成另一个接口,而装饰器是保持接口不变。

  • 包装器形成一条“链”。


装饰器的优点

装饰器和模板方法、策略模式的比较


  • 装饰器保持对象的功能不变,扩展其外围的功能


  • 模板方法和策略模式则保持算法的框架不变,而扩展其内部的实现


装饰器和继承的比较

  • 都可以用来扩展对象的功能

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

  • 装饰器可以任意组合

  • 但这也使装饰器更复杂,有可能会组合出荒谬的结果


Spring 设计模式


发布于: 2020 年 11 月 07 日阅读数: 44
用户头像

evildracula

关注

还未添加个人签名 2019.07.29 加入

还未添加个人简介

评论

发布
暂无评论
Week3 - 代码重构