设计模式有哪几类?

前言

设计模式的用处比我们想象的也许要更大

我之前以为,低代码开发几乎用不到设计模式

但是后面发现其实还是有很多地方可以应用设计模式的

就拿结构型设计模式 中的适配器模式来说

在低代码开发中就很容易找到可以被适配器模式应用的场景:比如对一个封装好的函数/或工作流进行适配,使其不用对封装的内容进行修改,就可以实现新的功能~

今天来总结下设计模式的分类,康康你的工作,可以有哪些场景可以应用设计模式~

开局先抛一个问题:🤔 设计模式为什么要这么分类?

文末回答!

正文

设计模式的核心思想,是总结出解决常见问题的"可重用套路"。

为了更好地学习和使用,人们根据这些套路主要解决的是哪一类问题,将它们分成了三大类:

1. 创建型模式

  • 关心什么 :解决"东西怎么来"的问题。
  • 核心作用:它们提供各种灵活的方式来创建你需要的功能单元,而不是用死板的方式固定死。这样,你想换一种"东西"时,会非常方便,不用大动干戈。
  • 常见例子【重要】
    • 单例:确保全局只有一个实例,如配置文件管理器
    • 工厂:专门负责生产对象,隐藏具体创建逻辑
    • 建造者:分步骤构建复杂对象,如组装电脑
    • 原型:通过复制现有对象来创建新对象

2. 结构型模式

  • 关心什么 :解决"东西怎么搭配(可以是 nodejs 或其他后端开发中的类或函数,也可以是 kettle 中的转换,也可以是 n8n 中的工作流)"的问题。
  • 核心作用:它们关注如何将不同的功能单元组合起来,形成一个更强大、更灵活的新结构。就像拼乐高,重点是研究积木之间的连接方式,而不是改变积木本身。
  • 常见例子【重要】
    • 适配器:让不兼容的接口能一起工作,如转接头
    • 装饰器:给功能动态添加新能力,不影响原功能
    • 代理:控制对对象的访问,如权限验证、缓存
    • 组合:用树形结构管理部分与整体的关系
    • 外观:为复杂系统提供简化入口

3. 行为型模式

  • 关心什么 :解决"东西怎么配合"的问题。
  • 核心作用:它们负责管理和优化不同功能单元之间的通信、协作流程与责任分配。确保各个部分既能各司其职,又能顺畅地完成共同任务。
  • 常见例子【重要】
    • 观察者:一个状态改变,自动通知所有相关方
    • 策略:灵活切换不同算法或策略
    • 责任链:让多个对象依次处理请求
    • 状态:根据状态改变对象的行为
    • 模板:定义算法骨架,允许重写特定步骤

总结一下各个分类涉及的设计模式

【🍃 创建型模式】共有 5 种:

这些模式包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。它们专注于如何以更灵活、更合适的方式来创建对象实例。

【🍃 结构型模式】共有 7 种:

这些模式包括适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式和代理模式。它们致力于通过有效的组合方式来构建更强大、更灵活的程序结构。

【🍃 行为型模式】共有 11 种:

这些模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。它们专注于优化对象之间的交互过程和协作方式。

最后

那么,回到最初的问题,为什么要这么分类?

答案就是:它像一个清晰的问题索引。

当你遇到一个关于"如何创建"的难题,直接去"创建型"里找思路;

当你需要"组合功能"时,就去"结构型"里找方法。

这种分类,可以帮助开发者更方便地对不同的问题场景进行分类和处理,方便我们根据实际的需求选择合适的设计模式。

相关推荐
r***99822 分钟前
在2023idea中如何创建SpringBoot
java·spring boot·后端
熊猫比分管理员15 分钟前
【全栈源码解决方案】Vue+Java四端齐全,一周交付可运行项目!
java·前端·vue.js
o***741716 分钟前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
坚持就完事了16 分钟前
CSS-5:盒子模型
前端·css·html
一 乐17 分钟前
考公|考务考试|基于SprinBoot+vue的考公在线考试系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·课程设计
吃饺子不吃馅17 分钟前
优化:如何避免 React Context 引起的全局挂载节点树重新渲染
前端·面试·github
q***721919 分钟前
Y20030018基于Java+Springboot+mysql+jsp+layui的家政服务系统的设计与实现 源代码 文档
android·前端·后端
i***395823 分钟前
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇
java·spring boot·后端
AY呀27 分钟前
DeepSeek:探索AI大模型与开发工具的全景指南
后端·机器学习
凡客丶32 分钟前
SpringBoot整合Sentinel【详解】
spring boot·后端·sentinel