写点什么

【总结】设计模式

用户头像
小胖子
关注
发布于: 2020 年 06 月 24 日

设计模式定义

  • 每一种模式都描述了一种问题的通用解决方案

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



一个模式的四个组成部分

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

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

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

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



设计模式分类

从功能分

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

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

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

从方式分

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

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



常用设计模式

简单工厂模式

  • 创建型模式

  • 根据参数的不同返回不同类的实例

单例模式

  • 创建型模式

  • 提供了一种访问其唯一的对象的方式

适配器模式

  • 结构型模式

  • 将一个接口转换成客户希望的另一个接口

模板方法模式

  • 类行为模式

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

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

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

策略模式

  • 对象行为模式

  • 通过"组合"的方式实现扩展

  • 系统重构:将条件语句转换成对于策略的多态性调用

  • 优点

  • 使用策略的人与策略具体实现的分离

  • 策略对象可以自由组合

组合模式

  • 对象结构模式



装饰者模式

  • 对象结构模式

  • 作用

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

  • 扩展现有对象的功能

  • 装饰器与继承的比较

  • 都可以扩展对象的功能

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

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

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

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

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

用户头像

小胖子

关注

还未添加个人签名 2018.02.04 加入

还未添加个人简介

评论

发布
暂无评论
【总结】设计模式