当前位置: 首页 > news >正文

23种设计模式速记法

在这里插入图片描述

前言

在软件开发的过程中,设计模式作为解决常见问题的通用模板,一直是开发者的重要工具。尤其是在面临复杂系统架构和需求变化时,设计模式不仅能够提升代码的可复用性和扩展性,还能大大提高团队之间的协作效率。然而,对于许多开发者来说,掌握所有设计模式的细节往往需要投入大量的时间和精力。本文将介绍23种设计模式的速记方法:

一、创建型

这类模式关注如何创建对象,减少直接创建对象的复杂性。

速记口诀:抽工单建原

抽象工厂、工厂方法、单例模式、建造者模式、原型模式

记忆技巧

  1. 单例模式 (Singleton)

记忆技巧:单个实例,"Sing"歌手的舞台只有一个人。

  1. 工厂方法模式 (Factory Method)

记忆技巧:就像工厂生产产品一样,你通过一个工厂方法来创建对象。

  1. 抽象工厂模式 (Abstract Factory)

记忆技巧:这不仅仅是一个工厂,而是可以生产不同产品的工厂(多个工厂实例)。

  1. 建造者模式 (Builder)

记忆技巧:建造一个复杂对象,就像建造一个大楼,需要一个专业的建造者。

  1. 原型模式 (Prototype)

记忆技巧:通过复制现有对象来创建新的对象,像是“原型”复制品。

二、结构型

这些模式关注如何将类和对象组合成更大的结构。

速记口诀:桥代理组装适配器,享元回家装饰外观

桥接模式、代理模式、组合模式、适配器模式、享元模式、装饰器模式、外观模式

记忆技巧

  1. 适配器模式 (Adapter)

记忆技巧:就像插头转换器,适配器模式使不同系统之间可以“适配”工作。

  1. 桥接模式 (Bridge)

记忆技巧:桥接模式通过提供一个“桥”来解耦接口和实现,像搭建一座桥梁。

  1. 组合模式 (Composite)

记忆技巧:就像树的分支一样,组合模式使得你可以把多个对象组合成一个整体。

  1. 装饰者模式 (Decorator)

记忆技巧:装饰者可以动态地给对象增加功能,像给礼物加上漂亮的包装。

  1. 外观模式 (Facade)

记忆技巧:外观模式提供了一个统一的接口,就像建筑物的正面“外观”对外界提供了简洁的视图。

  1. 享元模式 (Flyweight)

记忆技巧:享元模式通过共享对象来节省内存,就像我们分享相同的模板。

  1. 代理模式 (Proxy)

记忆技巧:代理模式就像代理人一样,代表其他对象处理任务。

三、行为型

这些模式关注对象和类之间的交互。

速记口诀:访问者写好策略备忘录,观察模板迭代的状态,命令中介解释责任链

访问者模式、策略模式、备忘录模式、观察者模式、模板模式、迭代模式、状态模式、命令模式、解释器模式、责任链模式

  1. 责任链模式 (Chain of Responsibility)

记忆技巧:像接力赛一样,责任链模式传递任务给链条中的下一个处理者。

  1. 命令模式 (Command)

记忆技巧:命令模式就像一个遥控器,通过发送命令控制对象行为。

  1. 解释器模式 (Interpreter)

记忆技巧:解释器模式类似于翻译员,能够将一种语言转换成另一种语言。

  1. 迭代器模式 (Iterator)

记忆技巧:迭代器模式就像遍历一组对象的“工具”或“地图”。

  1. 中介者模式 (Mediator)

记忆技巧:中介者模式充当调解员,协调不同对象之间的交互。

  1. 备忘录模式 (Memento)

记忆技巧:备忘录模式类似于保存快照,你可以恢复对象的先前状态。

  1. 观察者模式 (Observer)

记忆技巧:观察者模式就像一个新闻广播,所有注册的观察者都会收到更新。

  1. 状态模式 (State)

记忆技巧:状态模式就像切换档位,基于不同状态来改变对象的行为。

  1. 策略模式 (Strategy)
    记忆技巧:策略模式就像一套不同的战术,可以根据情况选择不同策略。

  2. 模板方法模式 (Template Method)
    记忆技巧:模板方法模式就像烹饪食谱,固定的步骤可以由不同的子类实现。

  3. 问者模式 (Visitor)
    记忆技巧:访问者模式就像一个检查员,访问对象的不同部分并执行操作。

参考内容

  • 图说设计模式
  • 大话设计模式
http://www.lryc.cn/news/488873.html

相关文章:

  • 第7章硬件测试-7.3 功能测试
  • 动态规划子数组系列一>等差数列划分
  • 《Python浪漫的烟花表白特效》
  • 什么是RESTful API,有什么特点
  • 友思特新闻 | 友思特荣获广州科技创新创业大赛智能装备行业赛初创组优胜企业!
  • CSS中calc语法不生效
  • 国标GB28181视频平台EasyCVR视频融合平台H.265/H.264转码业务流程
  • ES6 模板字符串详解
  • 浏览器插件启动本地程序
  • Ubuntu ESP32开发环境搭建
  • 【gitlab】部署
  • vue中路由缓存
  • Github 2024-11-18 开源项目周报 Top15
  • GRCNN使用onnxruntime和tensorrt推理
  • java中的this关键字
  • Easyexcel(3-文件导出)
  • iOS应用网络安全之HTTPS
  • openharmony napi调试笔记
  • springboot基于微信小程序的农产品交易平台
  • Spring Boot 注解
  • P8692 [蓝桥杯 2019 国 C] 数正方形:结论,组合数学
  • Spring Boot开发—— 实现订单号生成逻辑
  • React中Redux的基本用法
  • unity3d————基础篇小项目(设置界面)
  • 推荐几个 VSCode 流程图工具
  • 用java和redis实现考试成绩排行榜
  • hhdb数据库介绍(9-24)
  • HDMI数据传输三种使用场景
  • unigui 登陆界面
  • 无人机 PX4飞控 | CUAV 7-Nano 飞行控制器介绍与使用