设计模式-模式分类

  • 前言
  • 一、设计模式的三大分类及关键点
    • 创建型模式
    • 结构型模式
    • 行为型模式
  • 二、设计模式关系[^1]
  • 总结

前言

常见的设计模式有工厂模式、单例模式、原型模式等23种,按照其特点可以分为创建型模式、结构型模式以及行为型模式。而每种模型有自己的特点,又与其他模型存在一定的演进关系。


一、设计模式的三大分类及关键点

设计模式根据其特点可以分为创建型模式、结构型模式、行为型模式三大类。

创建型模式

对象实例化的模式,创建型模式用于解耦对象的实例化过程。

  1. 单例模式:某个类智能有一个实例,提供一个全局的访问点。
  2. 工厂模式:一个工厂类根据传入的参量决定创建出哪一种产品类的实例。
  3. 抽象工厂模式:创建相关或依赖对象的家族,而无需明确指定具体类。
  4. 建造者模式:封装一个复杂对象的创建过程,并可以按步骤构造。
  5. 原型模式:通过复制现有的实例来创建新的实例。

结构型模式

把类或对象结合在一起形成一个更大的结构。

  1. 装饰器模式:动态的给对象添加新的功能。
  2. 代理模式:为其它对象提供一个代理以便控制这个对象的访问。
  3. 桥接模式:将抽象部分和它的实现部分分离,使它们都可以独立的变化。
  4. 适配器模式:将一个类的方法接口转换成客户希望的另一个接口。
  5. 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。
  6. 外观模式:对外提供一个统一的方法,来访问子系统中的一群接口。
  7. 享元模式:通过共享技术来有效的支持大量细粒度的对象。

行为型模式

类和对象如何交互,及划分责任和算法。

  1. 策略模式:定义一系列算法,把他们封装起来,并且使它们可以相互替换。
  2. 模板模式:定义一个算法结构,而将一些步骤延迟到子类实现。
  3. 命令模式:将命令请求封装为一个对象,使得可以用不同的请求来进行参数化。
  4. 迭代器模式:一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构。
  5. 观察者模式:对象间的一对多的依赖关系。
  6. 仲裁者模式:用一个中介对象来封装一系列的对象交互。
  7. 备忘录模式:在不破坏封装的前提下,保持对象的内部状态。
  8. 解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器。
  9. 状态模式:允许一个对象在其对象内部状态改变时改变它的行为。
  10. 责任链模式:将请求的发送者和接收者解耦,使的多个对象都有处理这个请求的机会。
  11. 访问者模式:不改变数据结构的前提下,增加作用于一组对象元素的新功能。

二、设计模式关系1

总结

23种设计模式,可以说都是为了提高代码的可读性、可扩展性、可复用性、类的可替换性、组件化、可移植性等等特性。通过接口、抽象类、继承、实现、委托、抽象、面向接口编程、多态、重载、重写等方式使得代码的这些特性得以彰显,可以说只有深刻的理解了这些概念背后的哲学思想才能更好的理解设计模式。


  1. https://blog.csdn.net/guorui_java/article/details/104026988 ↩︎

【设计模式】模式分类相关推荐

  1. 大化设计模式——模式分类原则

    设计模式,面向人们生活中的几种特例,总结IT大佬们的经验,对一系列复杂的过程进行精简封装而形成.目的就是为了提高代码的复用性,灵活性,松耦合,并让程序员少走了许多弯路. 我们学完设计模式以后,大家都知 ...

  2. 设计模式(一) 单例模式

    2019独角兽企业重金招聘Python工程师标准>>> Hello 设计学习应用,好记性不如烂笔头,强调不是学习和小试牛刀,通过几遍文章资料,通过几段固定的代码就可以把设计模式的思想 ...

  3. 设计模式--1(设计模式基础,设计模式基本原则,设计模式分类)

    设计模式基础 模式 在一定环境中解决某一问题的方案,包括三个基本元素–问题,解决方案和环境. 大白话:在一定环境下,用固定套路解决问题. 设计模式 是一套被反复使用.多数人知晓的.经过分类编目的.代码 ...

  4. 23种设计模式分类+SOLID设计原则+从设计模式角度看MVC框架

    目的:设计模式旨在帮助使用者设计可维护.可扩展.可复用.灵活性好的系统 1.  23中设计模式分类 1.1 创建型模式(5个) 工厂方法模式(Factory Method) 抽象工厂模式 (Abstr ...

  5. 设计模式学习笔记(总结篇:模式分类)

    GOF根据模式的目标将模式分为三个类目:创建型.行为型和结构型. 1 创建型模式 创建型模式设计对象的实例化,这类模式的特点是,不让用户依赖于对象的创建或排列方式,避免用户直接使用new运算符创建对象 ...

  6. 设计模式总结 (1)模式分类

    模式前面的序号是模式在<研磨设计模式>一书中的序号. 模式 模式 创建型 2.简单工厂 Factory 有一个createApi函数,传入不同的type,创建和调用不同的类:ImplA或I ...

  7. 大话设计模式-23中设计模式分类

    设计模式的分类 总体设计模式分为三大类: 创建型模式 共五种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式. 结构型模式 共七种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组 ...

  8. 【无脑速通设计模式】设计模式简介 | 七大原则 | 模式分类

    设计模式由四人帮(全拼 Gang of Four)首次提出,代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是经过高度抽象化的在编程中可以被反复使用的代码设计经验的总结,是人们经 ...

  9. php工程模式,PHP设计模式(八):工厂模式

    Introduction 在PHP设计模式(七):设计模式分类中我们提到过创建设计模式(Creation patterns),创建设计模式专注于设计对象(Object)和实例(Instance)的创建 ...

最新文章

  1. 利用c语言找出输入文本最长的一行
  2. ise iMPACT bit生成MCS
  3. 读取list java_java 分批次读取java.util.List 数据
  4. REUSE_ALV_GRID_DISPLAY事件子过程和cl_gui_grid类的事件对应关系
  5. Java中字符串和数字间转换
  6. MySQL 常用运算符
  7. 数据结构与算法-时间复杂度
  8. origin 复制与数据转置
  9. STM32+AD7124+热电偶方案+Pt100冷端补偿解析工程源码,源码包含Pt100、NTC热敏、热电偶处理驱动源码
  10. 【安全脚本】 centos 下的病毒木马查杀脚本
  11. 带tan计算机在线,tan等于(万能计算器在线使用)
  12. VMware VSphere Client克隆虚拟机
  13. 打印大的打印机打印不出来
  14. Redis基础(二)—— 基本命令与数据类型
  15. R语言:三线表(1)
  16. 单片机之动态数码管篇
  17. html qq下高度,怎么知道iframe内容高度
  18. python+django+vue大学生心理健康管理系统
  19. 什么是变频器VFD,变频器工作原理和优点
  20. 瑞芯微RV1126平台----yolov5输出后处理C++实现

热门文章

  1. php编辑器解决乱码,phpstorm编辑器乱码问题解决
  2. 基于chromium for android开发Android浏览器
  3. 图像处理算法工程师面试题(后续问题答案持续更新)
  4. Win7兼容性测试及常见问题解答(一)
  5. 御风者(六)——不辞而别
  6. 雷电模拟器详细安装流程
  7. 前端img不显示服务器图片,【前端】img 加上crossOrigin=”anonymous”之后导致图片无法显示...
  8. WCF学习(六):实例
  9. 用Delphi创建音乐站点维护程序
  10. 生产配送单流程及操作手册