自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(215)
  • 收藏
  • 关注

原创 Spring AI 实战:快速接入通义千问、OpenAI,实现基础对话问答

本篇我们完成了Spring AI 公有云大模型完整接入实战,掌握了密钥申请、依赖引入、配置编写、接口开发全流程,成功实现了基础 AI 智能问答功能。同时深刻体会到 Spring AI 的核心优势:统一 API、零代码切换模型、开箱即用,彻底告别原生 HTTP 对接的繁琐适配工作。目前我们实现的是一次性单轮对话,每次提问都是独立上下文,无法连续聊天。后续我们会逐步优化,实现流式输出、多轮记忆、提示词工程等高阶能力。下一篇:离线也能用!

2026-08-06 16:43:37 277

原创 手把手搭建 Spring AI 开发环境:依赖引入、版本选择、项目初始化

本文是Spring AI科普实战系列的第二篇,主要讲解如何搭建Spring AI开发环境。文章推荐使用JDK17+、Spring Boot 3.3.x和Spring AI 1.1.x的稳定版本组合,详细介绍了两种项目创建方式(在线初始化和IDEA本地创建),并提供了完整的Maven核心依赖配置。文中还规范了项目结构,通过编写测试接口验证环境搭建成功,最后总结了新手常见环境报错及解决方案,为后续实现AI智能问答功能奠定基础。

2026-08-06 16:43:13 339

原创 Spring AI 入门科普:Spring 全家桶正式拥抱人工智能,一文看懂它是什么、能做什么

【摘要】Spring AI是Spring官方推出的Java生态AI开发框架,旨在解决传统Java对接大模型的四大痛点:多模型适配繁琐、缺乏标准化封装、高阶能力落地困难、与Spring生态割裂。其核心优势包括统一API适配全模型、原生整合Spring生态、内置高阶AI能力、支持公私云部署场景等。框架已兼容OpenAI、通义千问等主流模型,通过ChatModel/Prompt/Advisor/VectorStore四大核心组件,可快速实现智能客服、知识库问答等场景。本系列将系统讲解从环境搭建到RAG知识库的完整

2026-08-05 16:17:03 498

原创 Navicat 导出连接密文解密,Java 完整工具源码(Navicat11 /12+)

摘要: 本文介绍了如何解密Navicat数据库工具保存的加密密码。Navicat根据版本不同使用两种加密方式:11及更早版本采用Blowfish ECB模式,12及以上版本使用AES-128-CBC模式。文章提供了两种获取密文的方法(导出NCX文件或读取注册表),并给出完整的Java解密代码,支持双向加解密操作。代码基于JDK8原生加密库,无需第三方依赖,通过指定版本号即可解密出原始密码。该方案适用于密码遗忘或迁移连接时快速恢复数据库密码的需求。

2026-08-05 16:15:47 292

原创 RuoYi框架二次开发系列(六)进阶番外:代码生成器定制、前端组件改造、接口文档自动化终极方案

前五篇系列文章已经完整覆盖了 RuoYi 基础规范、数据权限、第三方集成、工作流、性能优化、分布式部署与安全加固,能够支撑绝大多数企业标准业务系统落地。但在实际项目交付中,原生框架仍存在个性化不足、前端组件死板、重复造页面、接口文档繁琐等问题。很多项目看似基于RuoYi开发,实则大量改写原生代码、手写基础页面、手动维护接口文档,丢失了框架提效的核心优势。本篇作为系列进阶核心番外,聚焦定制化提效能力,深度改造RuoYi核心提效工具,手把手实现代码生成器自定义模板、前端组件二次封装、接口文档全自动生成,彻底终

2026-07-24 15:37:17 295

原创 RuoYi框架二次开发系列(五)性能优化、Redis缓存实战、分布式部署、接口限流与安全加固生产方案

本篇作为RuoYi二次开发系列核心收尾篇,从性能、架构、安全、高可用四个维度,完成了系统从「可用」到「生产稳定可用」的全面升级。整套系列教程覆盖:开发规范→权限体系→第三方集成→自动化任务→工作流审批→性能优化→分布式部署→安全加固,完整覆盖企业RuoYi项目从0到1落地、从基础CRUD到高并发复杂系统的全流程开发能力,完全适配职场实战、项目交付、企业开发所有场景。

2026-07-24 15:36:48 478

原创 RuoYi框架二次开发系列(四)定时任务高阶开发与Flowable工作流审批流实战

定时任务解决了系统自动化、异步化业务,工作流解决了系统流程化、审批化业务,二者是 RuoYi 从简单CRUD系统进阶为企业级复杂业务系统的核心能力。掌握本篇内容,可独立开发OA办公、进销存、财务审批、项目管理、工单系统等全品类后台项目。

2026-07-15 15:57:49 249

原创 SpringBoot 集成 AJ-Captcha 实现滑动验证码,保姆级教程 + 避坑指南

在 Web 开发中,验证码是防止恶意攻击、暴力破解、机器人刷接口的核心防线,而滑动验证码相比传统图形验证码,体验更流畅、安全性更高,是目前主流的验证方案。本文基于AJ-Captcha(安居客开源的滑动验证码组件),手把手教你在SpringBoot + Spring Security项目中集成滑动验证码、点选验证码,解决接口放行、配置优化、前后端对接等问题,代码可直接复用!AJ-Captcha 是一款开源、轻量、无侵入的 Java 验证码组件,支持:滑动验证码(拼图):最常用,用户体验极佳。

2026-07-15 15:57:36 1090

原创 RuoYi框架二次开发系列(三)第三方功能集成实战(OSS、短信、登录、支付)生产级方案

本文介绍了在RuoYi框架中集成四大第三方服务的完整方案: 阿里云OSS存储:替换本地文件上传,提供云端存储方案,包含配置、工具类封装和避坑要点 阿里云短信服务:实现验证码登录功能,包含发送限流、缓存管理和安全校验 微信快捷登录:通过OAuth2.0实现一键授权登录,自动注册并绑定系统账号 在线支付对接:预留支付接口规范,支持多种支付方式集成 所有集成遵循统一规范: 配置化管理,无硬编码 独立模块封装 完整异常处理 不影响原生功能 每个方案都提供: 完整依赖配置 YML参数设置 核心工具类代码 生产环境注意

2026-07-13 14:00:37 287

原创 RuoYi框架二次开发系列(二)数据权限深度定制、源码解析与实战落地

本文深入解析RuoYi框架的数据权限机制,对比功能权限与数据权限的核心差异,介绍RuoYi内置的五种数据权限规则及其适用场景。文章详细剖析数据权限的MyBatis拦截器实现原理,提供标准配置方法,并通过门店管理案例演示自定义数据权限开发方案。针对特殊业务场景提出适配方案,列举常见问题及解决方案,最后给出生产环境最佳实践建议,包括必带字段、注解使用等规范。全文聚焦企业级应用的数据隔离需求,提供可直接落地的技术方案。

2026-07-13 14:00:06 334

原创 RuoYi框架二次开发常用技巧与功能拓展(系列开篇·实战完整版)

摘要: RuoYi作为国内主流开源后台管理框架,基于Spring Boot+Vue提供企业级基础功能,广泛用于各类系统开发。本文聚焦二次开发实战,提炼核心规范与高效技巧: 规范先行:禁止修改核心源码,业务模块独立封装;数据库表需保留通用字段;严格区分系统与业务模块; 提效技巧:活用代码生成器一键生成CRUD;通过数据字典实现动态枚举;全局参数替代硬编码;利用@Log注解简化日志记录; 功能拓展:自定义权限注解实现细粒度控制;配置单点登录;定制Excel导入导出;树形业务快速开发; 避坑指南:如避免硬编码、同

2026-06-29 19:46:58 419

原创 SpringBoot配置文件安全加固:Jasypt加密敏感信息最全实战(三种集成方式+版本避坑)

本文介绍了使用Jasypt框架对SpringBoot配置文件中的敏感信息进行加密的完整方案。首先强调了配置文件明文存储账号密码等敏感数据的危险性,提出了清理冗余配置的安全预处理规范。随后详细讲解了Jasypt的核心特性和三种官方集成方案,重点推荐自动适配方式。文章通过单元测试示例演示了密文生成过程,并说明配置文件中需使用ENC()格式包裹密文。方案实现了配置密文存储、项目启动自动解密的功能,兼顾安全性和开发便利性,有效防止敏感信息泄露风险,符合企业安全开发规范。

2026-06-29 19:44:28 382

原创 设计模式系列文章(基础篇第41篇):解释器模式——自定义语法规则,实现表达式解析

本文介绍了设计模式中的解释器模式,这是一种专门用于解析自定义语言/表达式的行为型设计模式。文章首先阐述了解释器模式的定义和设计初衷,指出它通过定义语法规则并递归拆解表达式来解决硬编码解析带来的扩展性差、嵌套臃肿等问题。 核心内容围绕解释器模式的五大角色展开: 抽象表达式接口 终结符表达式(最小不可拆单元) 非终结符表达式(可嵌套的语法单元) 上下文环境 客户端 文章通过四则运算表达式解析的完整案例,展示了如何实现数字表达式(终结符)和加减乘除运算(非终结符),并演示了递归解析嵌套表达式的过程。最后解释了该模

2026-06-26 17:29:08 329

原创 设计模式系列文章(基础篇第40篇):命令模式——封装请求操作,实现解耦复用

本文介绍了设计模式中的命令模式(Command Pattern),该模式通过将请求封装为独立对象,实现请求发起者与执行者的解耦。命令模式适用于需要支持撤销、重做、任务排队等场景,如遥控器控制家电、事务管理等。文章详细阐述了命令模式的四大角色(抽象命令、具体命令、调用者、接收者)及其标准执行流程,并通过家电遥控器的代码示例展示了具体实现方式。该模式遵循单一职责、开闭原则等设计原则,能有效提升系统的扩展性和灵活性。

2026-06-26 17:28:49 321

原创 设计模式系列文章(基础篇第39篇):备忘录模式——保存对象状态,实现回溯恢复

// 管理者:撤销管理器,负责管理所有备忘录 public class UndoManager { // 使用栈存储备忘录(先进后出,支持撤销到上一步) private Stack mementoStack = new Stack<>(); // 保存当前状态:接收原发器的备忘录并存储 public void saveState(Memento memento) { mementoStack.push(memento); } // 撤销到上一步:从栈中弹出最新的备忘录并返回 public Memento u

2026-06-25 14:27:20 383

原创 设计模式系列文章(基础篇第38篇):访问者模式——分离元素操作,灵活扩展功能

访问者模式是一种行为型设计模式,其核心思想是将数据结构和操作分离,允许在不修改元素类的前提下定义新的操作。该模式通过定义一个访问者接口来封装对元素的操作,元素类通过accept方法接受访问者访问,实现操作逻辑与元素结构的解耦。 摘要要点: 访问者模式适用于需要对复杂对象结构中各元素执行多种不同操作的场景 主要解决元素结构与操作逻辑耦合过高、操作扩展困难的问题 核心角色包括抽象访问者、具体访问者、抽象元素、具体元素和聚合对象 关键优势是新增操作时只需添加新的访问者类,无需修改现有元素类 典型应用场景如部门员工

2026-06-25 14:26:00 349

原创 设计模式系列文章(基础篇第37篇):迭代器模式——统一遍历元素,隐藏内部实现

本文介绍了设计模式中的迭代器模式,它是一种行为型模式,用于提供统一的方法顺序访问聚合对象中的元素,同时隐藏内部存储结构。文章通过餐厅服务员的类比,解释了迭代器模式的核心思想:解耦遍历逻辑与聚合对象,统一遍历接口。 迭代器模式包含四个核心角色:抽象迭代器(定义遍历方法)、具体迭代器(实现遍历逻辑)、抽象聚合(定义获取迭代器方法)和具体聚合(存储元素)。该模式遵循单一职责、开闭原则等设计原则,解决了遍历逻辑冗余和内部结构暴露的问题。 文章通过自定义数组集合的示例,展示了如何实现正序和倒序两种迭代器。关键优势在于

2026-06-24 10:51:59 171

原创 设计模式系列文章(基础篇第36篇):观察者模式——状态变化通知,实现一对多依赖

本文介绍了观察者模式(又称发布-订阅模式),这是一种行为型设计模式,用于建立对象间的一对多依赖关系。当被观察者状态变化时,会自动通知所有观察者并触发更新,实现状态同步。文章通过微信公众号订阅场景的完整代码示例,展示了该模式如何解耦被观察者与观察者,支持动态增减观察者,并遵循开闭原则等设计原则。观察者模式广泛应用于状态通知、数据同步场景,如库存预警、天气推送等,能显著提升系统灵活性和可扩展性。

2026-06-24 10:51:33 363

原创 设计模式系列文章(基础篇第35篇):中介者模式——封装对象交互,降低耦合度

1. 核心定义中介者模式(Mediator Pattern):定义一个中介者对象,封装一系列对象之间的交互,使这些对象无需直接相互引用,而是通过中介者进行通信,从而降低对象之间的耦合度,并且可以独立地改变它们之间的交互。核心是封装对象交互、解耦关联对象、统一调度管理。通俗理解:中介者模式就像生活中的房产中介,买家和卖家之间无需直接沟通,所有的交易流程(看房、议价、签合同、过户)都通过中介者完成——买家告知中介自己的需求,卖家告知中介自己的房源信息,中介者根据双方的需求进行匹配、协调,最终完成交易。

2026-06-23 14:42:13 400

原创 设计模式系列文章(基础篇第34篇):责任链模式——请求链式处理,实现分发与解耦

本文介绍了责任链模式的核心概念与设计初衷,通过电商订单退款审核场景展示了该模式的实现方式。责任链模式通过将多个处理请求的对象连成一条链,实现请求的分发与处理解耦,支持动态调整处理流程,提升系统灵活性和可扩展性。文章详细讲解了责任链模式的3个核心角色(抽象处理者、具体处理者、请求者)、7步执行流程,并通过Java代码示例演示了电商退款审核的具体实现。该模式解决了请求处理者过多、处理逻辑分散的问题,符合开闭原则、单一职责原则等设计原则,是处理复杂流程的有效方法。

2026-06-23 14:42:01 523

原创 设计模式系列文章(基础篇第33篇):命令模式——请求封装解耦,支持指令的灵活管理

摘要 命令模式是一种行为型设计模式,通过将请求封装为独立对象实现发送者与接收者的解耦。该模式包含4个核心角色:抽象命令(定义接口)、具体命令(封装请求逻辑)、接收者(执行操作)和调用者(管理命令)。以电视遥控器场景为例,遥控器(调用者)通过命令对象间接控制电视(接收者)的各项操作,支持命令的排队、撤销和重做。命令模式解决了请求直接耦合的问题,提高了系统扩展性,严格遵循开闭原则等设计规范。典型应用包括家电遥控、订单系统和任务调度等场景,通过命令对象实现请求的灵活管理。

2026-06-18 13:57:41 294

原创 设计模式系列文章(基础篇第32篇):策略模式——算法封装切换,提升代码灵活性

本文介绍了设计模式中的策略模式,其核心思想是将算法封装为独立策略类,实现灵活切换和解耦。策略模式通过定义抽象策略接口、具体策略实现和环境类三个角色,有效解决了多种算法并存时的代码臃肿问题。 文章以电商支付系统为例,详细展示了策略模式的实现过程:首先定义支付策略接口,然后实现微信、支付宝等具体支付方式,最后通过支付上下文类管理策略切换。这种设计使系统在新增支付方式时只需添加策略类,无需修改现有代码,完美遵循开闭原则。 策略模式的优点在于提高代码可维护性和扩展性,特别适用于算法频繁变更的场景。通过该模式,开发者

2026-06-18 13:57:21 350

原创 设计模式系列文章(基础篇第31篇):状态模式——状态驱动行为,灵活管理对象状态

本文介绍了设计模式中的状态模式,该模式通过将对象的行为与其内部状态分离,使得对象在状态改变时能够动态调整行为。状态模式包含三个核心角色:上下文(Context)、抽象状态(State)和具体状态(Concrete State)。文章以播放器状态管理为例,详细阐述了状态模式的实现流程,包括定义抽象状态接口、实现具体状态类以及上下文类的设计。状态模式有效解决了传统条件判断导致的代码臃肿问题,提升了系统的扩展性和可维护性,符合开闭原则和单一职责原则,适用于状态频繁变化的业务场景。

2026-06-18 13:56:57 356

原创 设计模式系列文章(基础篇第30篇):观察者模式——对象联动通知,解耦依赖关系

本文摘要:观察者模式是行为型设计模式之一,核心在于定义对象间一对多的依赖关系,当被观察者状态变化时自动通知所有观察者。该模式通过抽象接口解耦被观察者与观察者,典型应用包括公众号推送、订单状态变更等场景。文章详细解析了模式的定义、设计初衷、四大核心角色(抽象/具体被观察者、抽象/具体观察者)及其交互流程,并以微信公众号推送为例展示Java代码实现,体现"注册-通知-更新"的标准执行流程,突出其支持灵活扩展、符合开闭原则的优势。(149字)

2026-06-18 13:56:14 323

原创 设计模式系列文章(基础篇第29篇):迭代器模式——统一聚合对象遍历,解耦遍历与实现

本文介绍了设计模式中的迭代器模式(Iterator Pattern),该模式通过分离聚合对象与遍历逻辑,提供统一接口顺序访问集合元素,同时不暴露内部结构。文章从核心定义、设计初衷、结构角色、执行流程到购物车遍历的实战案例,系统讲解了迭代器模式的实现方法。 摘要要点: 迭代器模式核心是解耦集合存储与遍历操作,通过独立迭代器对象实现统一访问接口 包含4个关键角色:抽象/具体迭代器、抽象/具体聚合类,各司其职 遵循单一职责和开闭原则,新增遍历方式只需扩展迭代器类 购物车案例演示了顺序/倒序两种迭代器实现,客户端通

2026-06-16 16:14:30 330

原创 设计模式系列文章(基础篇第28篇):备忘录模式——保存对象状态,实现撤销与回滚

o(textContent, cursorPosition); } // 从备忘录恢复状态:从备忘录中获取之前保存的状态,恢复内部状态 public void restoreFromMemento(TextMemento memento) { // 从备忘录中获取保存的状态 this.textContent = memento.getTextContent(); this.cursorPosition = memento.getCursorPosition(); System.out.println("恢复

2026-06-16 16:14:03 363

原创 设计模式系列文章(基础篇第27篇):中介者模式——封装对象交互,降低耦合度

摘要 本文介绍了行为型设计模式中的中介者模式(Mediator Pattern),该模式通过引入中介对象来封装多个对象间的复杂交互,从而降低对象间的耦合度。核心思想是将网状的对象交互结构转变为星型结构,让对象间通过中介者间接通信,实现解耦和集中管理交互逻辑。文章详细阐述了中介者模式的设计初衷、核心结构(抽象/具体中介者、抽象/具体同事类)、执行流程,并以聊天系统为例展示了Java代码实现。该模式适用于对象间交互复杂、耦合度高的场景,能显著提升代码的可维护性和扩展性,符合单一职责原则和迪米特法则等设计原则。

2026-06-15 13:53:49 348

原创 设计模式系列文章(基础篇第26篇):访问者模式——分离数据结构与操作,实现灵活扩展

文章摘要 访问者模式是一种行为型设计模式,核心在于分离数据结构与操作逻辑。它通过定义作用于对象结构中各元素的操作接口,在不修改元素类的前提下实现新操作的灵活扩展。模式包含5个角色:抽象/具体访问者(封装操作逻辑)、抽象/具体元素(提供接受访问接口)和对象结构(管理元素集合)。典型应用场景包括电商商品操作、文档处理等需要频繁增加新操作的情况。该模式完美体现开闭原则和单一职责原则,适合数据结构稳定但操作多变的系统,能有效解决操作逻辑分散和修改元素类的问题。实现时通过accept方法实现"元素主动接受访问",使新

2026-06-15 13:53:10 511

原创 设计模式系列文章(基础篇第25篇):解释器模式——解析表达式,实现语言解释与执行

1. 核心定义解释器模式(Interpreter Pattern):定义一个语言的语法,并建立一个解释器来解释该语言中的句子。这里的“语言”,可以是任何有固定语法规则的符号集合(如数学表达式、SQL语句、自定义规则语言等);“解释器”则是负责解析这些符号、执行对应逻辑的核心组件。解释器模式的核心是将语法规则拆解为抽象语法树(AST),通过递归解析每个节点(解释单元),实现对整个表达式的执行。通俗理解:解释器模式就像我们学习一门新语言时的“词典+翻译官”。

2026-06-12 13:55:03 322

原创 设计模式系列文章(基础篇第24篇):状态模式——封装状态变化,实现行为动态切换

1. 核心定义状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式的核心是封装状态变化,将状态相关的行为分散到各个状态类中,实现状态与行为的解耦。通俗理解:状态模式就像我们生活中的“演员”和“剧本”。假设一个演员(环境类)要出演一个角色,这个角色有多种情绪状态(如开心、难过、愤怒),每种情绪状态下的行为(表情、动作、台词)都不同(状态类)。演员不需要记住每种情绪下该做什么,只需拿到对应情绪的剧本(状态对象),按照剧本执行即可。

2026-06-12 13:54:51 330

原创 设计模式系列文章(基础篇第23篇):备忘录模式——保存对象状态,实现可逆操作

1. 核心定义备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式的核心是封装状态备份与恢复,不暴露对象内部细节。通俗理解:备忘录模式就像我们生活中的“笔记本”和“记账员”。假设你是一名作家(原发器),正在写一篇文章,你会定期将当前的写作内容(内部状态)抄写到笔记本上(备忘录),并交给助手(负责人)保管。

2026-06-12 13:54:36 319

原创 设计模式系列文章(基础篇第22篇):访问者模式——分离数据结构与操作,实现灵活扩展

1. 核心定义访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下,定义作用于这些元素的新操作。访问者模式的核心是分离数据结构与数据操作,让操作可以独立扩展。通俗理解:访问者模式就像我们生活中的审计人员。一个公司(聚合对象)包含多个部门(元素),每个部门的职责和数据(如财务部门的收支数据、人事部门的员工数据)是固定的(数据结构固定)。

2026-06-12 13:54:26 316

原创 设计模式系列文章(基础篇第21篇):迭代器模式——遍历聚合解耦,实现统一迭代访问

1. 核心定义迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式又称游标模式(Cursor Pattern),核心是分离聚合对象与遍历逻辑,提供统一的迭代访问接口。通俗理解:迭代器模式就像我们生活中的图书管理员。

2026-06-10 16:49:51 410

原创 设计模式系列文章(基础篇第20篇):观察者模式——发布订阅解耦,实现状态同步通知

1. 核心定义观察者模式(Observer Pattern):定义对象间的一种一对多的依赖关系,当一个对象(主题Subject)的状态发生改变时,所有依赖于它的对象(观察者Observer)都会得到通知,并自动更新自己。观察者模式又称发布-订阅模式(Publish-Subscribe Pattern),核心是解耦发布者与订阅者,实现状态同步通知。通俗理解:观察者模式就像我们生活中的报纸订阅服务。

2026-06-10 16:49:41 739

原创 设计模式系列文章(基础篇第19篇):中介者模式——封装交互关系,解耦网状依赖

1. 核心定义中介者模式(Mediator Pattern):用一个中介者对象来封装一系列对象之间的交互,使这些对象之间不再直接引用,而是通过中介者间接通信。中介者负责协调各个对象之间的交互,减少对象之间的耦合度,使系统结构更清晰、更易于维护和扩展。中介者模式又称调停者模式,核心是封装交互、解耦依赖、统一协调。通俗理解:中介者模式就像我们生活中的房产中介。

2026-06-04 14:41:41 436

原创 设计模式系列文章(基础篇第18篇):状态模式——状态封装流转,实现行为动态适配

1. 核心定义状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式将对象的状态封装成独立的类,当对象内部状态发生变更时,切换对应的状态类实例,从而自动切换对应的行为逻辑,核心是状态决定行为,行为依附状态。通俗理解:状态模式就像我们日常使用的手机,不同模式下功能行为完全不同。手机在正常模式下,支持通话、上网、拍照等所有功能;开启省电模式后,自动关闭后台应用、降低屏幕亮度、限制性能,仅保留基础通话和短信功能;

2026-06-04 14:41:27 391

原创 设计模式系列文章(基础篇第 17 篇):备忘录模式——快照保存状态,实现无损回滚与撤销

1. 核心定义备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。备忘录模式又称快照模式,核心是“状态的封装保存与无损恢复”,核心目标是保护对象的封装性,同时实现状态的可回溯。通俗理解:备忘录模式就像我们手机的“备份与恢复”功能。手机(发起人)在系统更新前,会将当前的系统配置、应用数据等状态,保存到备份文件(备忘录)中;

2026-06-03 10:17:39 381

原创 设计模式系列文章(基础篇第 16 篇):命令模式——封装请求为对象,解耦发送与执行

1. 核心定义命令模式(Command Pattern):将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。命令模式的核心是分离请求的发送者与接收者,发送者只负责触发命令,接收者只负责执行命令,两者通过命令对象完成交互,互不直接依赖。通俗理解:命令模式就像餐厅点餐流程。顾客(请求发送者)只需要向服务员下单(触发命令),无需知道厨师(请求接收者)是谁、怎么做菜;服务员将订单(命令对象)传递给后厨,厨师按照订单完成做菜(执行命令)。

2026-06-03 10:17:26 409

原创 设计模式系列文章(基础篇第 15 篇):责任链模式——链式传递请求,解耦请求发送与处理

1. 核心定义责任链模式(Chain of Responsibility Pattern):将请求的处理者对象连成一条链,并将请求沿着这条链传递,直到链上的某一个处理者对象处理该请求为止。每个处理者对象都拥有对下一个处理者对象的引用,请求的发送者无需知道链上的具体处理者,只需将请求提交到链的入口,由链自行处理请求。通俗理解:责任链模式就像我们生活中的“审批流程”。比如员工提交一笔报销申请,需要经过部门经理审批、财务审批、总经理审批三个环节,这三个审批者就构成了一条责任链。

2026-06-02 09:46:56 342

原创 设计模式系列文章(基础篇第 14 篇):迭代器模式——统一集合遍历接口,解耦遍历逻辑与集合实现

1. 核心定义迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象(集合容器)中的各个元素,而又不暴露该对象的内部表示。迭代器模式将遍历逻辑封装在迭代器对象中,使集合容器只负责存储数据,迭代器负责遍历数据,实现数据存储与遍历逻辑的解耦。通俗理解:迭代器模式就像我们生活中的“导游”。

2026-06-02 09:46:45 373

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除