- 博客(205)
- 收藏
- 关注
原创 RuoYi框架二次开发常用技巧与功能拓展(系列开篇·实战完整版)
摘要: RuoYi作为国内主流开源后台管理框架,基于Spring Boot+Vue提供企业级基础功能,广泛用于各类系统开发。本文聚焦二次开发实战,提炼核心规范与高效技巧: 规范先行:禁止修改核心源码,业务模块独立封装;数据库表需保留通用字段;严格区分系统与业务模块; 提效技巧:活用代码生成器一键生成CRUD;通过数据字典实现动态枚举;全局参数替代硬编码;利用@Log注解简化日志记录; 功能拓展:自定义权限注解实现细粒度控制;配置单点登录;定制Excel导入导出;树形业务快速开发; 避坑指南:如避免硬编码、同
2026-06-29 19:46:58
321
原创 SpringBoot配置文件安全加固:Jasypt加密敏感信息最全实战(三种集成方式+版本避坑)
本文介绍了使用Jasypt框架对SpringBoot配置文件中的敏感信息进行加密的完整方案。首先强调了配置文件明文存储账号密码等敏感数据的危险性,提出了清理冗余配置的安全预处理规范。随后详细讲解了Jasypt的核心特性和三种官方集成方案,重点推荐自动适配方式。文章通过单元测试示例演示了密文生成过程,并说明配置文件中需使用ENC()格式包裹密文。方案实现了配置密文存储、项目启动自动解密的功能,兼顾安全性和开发便利性,有效防止敏感信息泄露风险,符合企业安全开发规范。
2026-06-29 19:44:28
319
原创 设计模式系列文章(基础篇第41篇):解释器模式——自定义语法规则,实现表达式解析
本文介绍了设计模式中的解释器模式,这是一种专门用于解析自定义语言/表达式的行为型设计模式。文章首先阐述了解释器模式的定义和设计初衷,指出它通过定义语法规则并递归拆解表达式来解决硬编码解析带来的扩展性差、嵌套臃肿等问题。 核心内容围绕解释器模式的五大角色展开: 抽象表达式接口 终结符表达式(最小不可拆单元) 非终结符表达式(可嵌套的语法单元) 上下文环境 客户端 文章通过四则运算表达式解析的完整案例,展示了如何实现数字表达式(终结符)和加减乘除运算(非终结符),并演示了递归解析嵌套表达式的过程。最后解释了该模
2026-06-26 17:29:08
314
原创 设计模式系列文章(基础篇第40篇):命令模式——封装请求操作,实现解耦复用
本文介绍了设计模式中的命令模式(Command Pattern),该模式通过将请求封装为独立对象,实现请求发起者与执行者的解耦。命令模式适用于需要支持撤销、重做、任务排队等场景,如遥控器控制家电、事务管理等。文章详细阐述了命令模式的四大角色(抽象命令、具体命令、调用者、接收者)及其标准执行流程,并通过家电遥控器的代码示例展示了具体实现方式。该模式遵循单一职责、开闭原则等设计原则,能有效提升系统的扩展性和灵活性。
2026-06-26 17:28:49
310
原创 设计模式系列文章(基础篇第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
370
原创 设计模式系列文章(基础篇第38篇):访问者模式——分离元素操作,灵活扩展功能
访问者模式是一种行为型设计模式,其核心思想是将数据结构和操作分离,允许在不修改元素类的前提下定义新的操作。该模式通过定义一个访问者接口来封装对元素的操作,元素类通过accept方法接受访问者访问,实现操作逻辑与元素结构的解耦。 摘要要点: 访问者模式适用于需要对复杂对象结构中各元素执行多种不同操作的场景 主要解决元素结构与操作逻辑耦合过高、操作扩展困难的问题 核心角色包括抽象访问者、具体访问者、抽象元素、具体元素和聚合对象 关键优势是新增操作时只需添加新的访问者类,无需修改现有元素类 典型应用场景如部门员工
2026-06-25 14:26:00
334
原创 设计模式系列文章(基础篇第37篇):迭代器模式——统一遍历元素,隐藏内部实现
本文介绍了设计模式中的迭代器模式,它是一种行为型模式,用于提供统一的方法顺序访问聚合对象中的元素,同时隐藏内部存储结构。文章通过餐厅服务员的类比,解释了迭代器模式的核心思想:解耦遍历逻辑与聚合对象,统一遍历接口。 迭代器模式包含四个核心角色:抽象迭代器(定义遍历方法)、具体迭代器(实现遍历逻辑)、抽象聚合(定义获取迭代器方法)和具体聚合(存储元素)。该模式遵循单一职责、开闭原则等设计原则,解决了遍历逻辑冗余和内部结构暴露的问题。 文章通过自定义数组集合的示例,展示了如何实现正序和倒序两种迭代器。关键优势在于
2026-06-24 10:51:59
161
原创 设计模式系列文章(基础篇第36篇):观察者模式——状态变化通知,实现一对多依赖
本文介绍了观察者模式(又称发布-订阅模式),这是一种行为型设计模式,用于建立对象间的一对多依赖关系。当被观察者状态变化时,会自动通知所有观察者并触发更新,实现状态同步。文章通过微信公众号订阅场景的完整代码示例,展示了该模式如何解耦被观察者与观察者,支持动态增减观察者,并遵循开闭原则等设计原则。观察者模式广泛应用于状态通知、数据同步场景,如库存预警、天气推送等,能显著提升系统灵活性和可扩展性。
2026-06-24 10:51:33
353
原创 设计模式系列文章(基础篇第35篇):中介者模式——封装对象交互,降低耦合度
1. 核心定义中介者模式(Mediator Pattern):定义一个中介者对象,封装一系列对象之间的交互,使这些对象无需直接相互引用,而是通过中介者进行通信,从而降低对象之间的耦合度,并且可以独立地改变它们之间的交互。核心是封装对象交互、解耦关联对象、统一调度管理。通俗理解:中介者模式就像生活中的房产中介,买家和卖家之间无需直接沟通,所有的交易流程(看房、议价、签合同、过户)都通过中介者完成——买家告知中介自己的需求,卖家告知中介自己的房源信息,中介者根据双方的需求进行匹配、协调,最终完成交易。
2026-06-23 14:42:13
386
原创 设计模式系列文章(基础篇第34篇):责任链模式——请求链式处理,实现分发与解耦
本文介绍了责任链模式的核心概念与设计初衷,通过电商订单退款审核场景展示了该模式的实现方式。责任链模式通过将多个处理请求的对象连成一条链,实现请求的分发与处理解耦,支持动态调整处理流程,提升系统灵活性和可扩展性。文章详细讲解了责任链模式的3个核心角色(抽象处理者、具体处理者、请求者)、7步执行流程,并通过Java代码示例演示了电商退款审核的具体实现。该模式解决了请求处理者过多、处理逻辑分散的问题,符合开闭原则、单一职责原则等设计原则,是处理复杂流程的有效方法。
2026-06-23 14:42:01
481
原创 设计模式系列文章(基础篇第33篇):命令模式——请求封装解耦,支持指令的灵活管理
摘要 命令模式是一种行为型设计模式,通过将请求封装为独立对象实现发送者与接收者的解耦。该模式包含4个核心角色:抽象命令(定义接口)、具体命令(封装请求逻辑)、接收者(执行操作)和调用者(管理命令)。以电视遥控器场景为例,遥控器(调用者)通过命令对象间接控制电视(接收者)的各项操作,支持命令的排队、撤销和重做。命令模式解决了请求直接耦合的问题,提高了系统扩展性,严格遵循开闭原则等设计规范。典型应用包括家电遥控、订单系统和任务调度等场景,通过命令对象实现请求的灵活管理。
2026-06-18 13:57:41
284
原创 设计模式系列文章(基础篇第32篇):策略模式——算法封装切换,提升代码灵活性
本文介绍了设计模式中的策略模式,其核心思想是将算法封装为独立策略类,实现灵活切换和解耦。策略模式通过定义抽象策略接口、具体策略实现和环境类三个角色,有效解决了多种算法并存时的代码臃肿问题。 文章以电商支付系统为例,详细展示了策略模式的实现过程:首先定义支付策略接口,然后实现微信、支付宝等具体支付方式,最后通过支付上下文类管理策略切换。这种设计使系统在新增支付方式时只需添加策略类,无需修改现有代码,完美遵循开闭原则。 策略模式的优点在于提高代码可维护性和扩展性,特别适用于算法频繁变更的场景。通过该模式,开发者
2026-06-18 13:57:21
325
原创 设计模式系列文章(基础篇第31篇):状态模式——状态驱动行为,灵活管理对象状态
本文介绍了设计模式中的状态模式,该模式通过将对象的行为与其内部状态分离,使得对象在状态改变时能够动态调整行为。状态模式包含三个核心角色:上下文(Context)、抽象状态(State)和具体状态(Concrete State)。文章以播放器状态管理为例,详细阐述了状态模式的实现流程,包括定义抽象状态接口、实现具体状态类以及上下文类的设计。状态模式有效解决了传统条件判断导致的代码臃肿问题,提升了系统的扩展性和可维护性,符合开闭原则和单一职责原则,适用于状态频繁变化的业务场景。
2026-06-18 13:56:57
343
原创 设计模式系列文章(基础篇第30篇):观察者模式——对象联动通知,解耦依赖关系
本文摘要:观察者模式是行为型设计模式之一,核心在于定义对象间一对多的依赖关系,当被观察者状态变化时自动通知所有观察者。该模式通过抽象接口解耦被观察者与观察者,典型应用包括公众号推送、订单状态变更等场景。文章详细解析了模式的定义、设计初衷、四大核心角色(抽象/具体被观察者、抽象/具体观察者)及其交互流程,并以微信公众号推送为例展示Java代码实现,体现"注册-通知-更新"的标准执行流程,突出其支持灵活扩展、符合开闭原则的优势。(149字)
2026-06-18 13:56:14
317
原创 设计模式系列文章(基础篇第29篇):迭代器模式——统一聚合对象遍历,解耦遍历与实现
本文介绍了设计模式中的迭代器模式(Iterator Pattern),该模式通过分离聚合对象与遍历逻辑,提供统一接口顺序访问集合元素,同时不暴露内部结构。文章从核心定义、设计初衷、结构角色、执行流程到购物车遍历的实战案例,系统讲解了迭代器模式的实现方法。 摘要要点: 迭代器模式核心是解耦集合存储与遍历操作,通过独立迭代器对象实现统一访问接口 包含4个关键角色:抽象/具体迭代器、抽象/具体聚合类,各司其职 遵循单一职责和开闭原则,新增遍历方式只需扩展迭代器类 购物车案例演示了顺序/倒序两种迭代器实现,客户端通
2026-06-16 16:14:30
317
原创 设计模式系列文章(基础篇第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
328
原创 设计模式系列文章(基础篇第27篇):中介者模式——封装对象交互,降低耦合度
摘要 本文介绍了行为型设计模式中的中介者模式(Mediator Pattern),该模式通过引入中介对象来封装多个对象间的复杂交互,从而降低对象间的耦合度。核心思想是将网状的对象交互结构转变为星型结构,让对象间通过中介者间接通信,实现解耦和集中管理交互逻辑。文章详细阐述了中介者模式的设计初衷、核心结构(抽象/具体中介者、抽象/具体同事类)、执行流程,并以聊天系统为例展示了Java代码实现。该模式适用于对象间交互复杂、耦合度高的场景,能显著提升代码的可维护性和扩展性,符合单一职责原则和迪米特法则等设计原则。
2026-06-15 13:53:49
340
原创 设计模式系列文章(基础篇第26篇):访问者模式——分离数据结构与操作,实现灵活扩展
文章摘要 访问者模式是一种行为型设计模式,核心在于分离数据结构与操作逻辑。它通过定义作用于对象结构中各元素的操作接口,在不修改元素类的前提下实现新操作的灵活扩展。模式包含5个角色:抽象/具体访问者(封装操作逻辑)、抽象/具体元素(提供接受访问接口)和对象结构(管理元素集合)。典型应用场景包括电商商品操作、文档处理等需要频繁增加新操作的情况。该模式完美体现开闭原则和单一职责原则,适合数据结构稳定但操作多变的系统,能有效解决操作逻辑分散和修改元素类的问题。实现时通过accept方法实现"元素主动接受访问",使新
2026-06-15 13:53:10
491
原创 设计模式系列文章(基础篇第25篇):解释器模式——解析表达式,实现语言解释与执行
1. 核心定义解释器模式(Interpreter Pattern):定义一个语言的语法,并建立一个解释器来解释该语言中的句子。这里的“语言”,可以是任何有固定语法规则的符号集合(如数学表达式、SQL语句、自定义规则语言等);“解释器”则是负责解析这些符号、执行对应逻辑的核心组件。解释器模式的核心是将语法规则拆解为抽象语法树(AST),通过递归解析每个节点(解释单元),实现对整个表达式的执行。通俗理解:解释器模式就像我们学习一门新语言时的“词典+翻译官”。
2026-06-12 13:55:03
307
原创 设计模式系列文章(基础篇第24篇):状态模式——封装状态变化,实现行为动态切换
1. 核心定义状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式的核心是封装状态变化,将状态相关的行为分散到各个状态类中,实现状态与行为的解耦。通俗理解:状态模式就像我们生活中的“演员”和“剧本”。假设一个演员(环境类)要出演一个角色,这个角色有多种情绪状态(如开心、难过、愤怒),每种情绪状态下的行为(表情、动作、台词)都不同(状态类)。演员不需要记住每种情绪下该做什么,只需拿到对应情绪的剧本(状态对象),按照剧本执行即可。
2026-06-12 13:54:51
317
原创 设计模式系列文章(基础篇第23篇):备忘录模式——保存对象状态,实现可逆操作
1. 核心定义备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式的核心是封装状态备份与恢复,不暴露对象内部细节。通俗理解:备忘录模式就像我们生活中的“笔记本”和“记账员”。假设你是一名作家(原发器),正在写一篇文章,你会定期将当前的写作内容(内部状态)抄写到笔记本上(备忘录),并交给助手(负责人)保管。
2026-06-12 13:54:36
308
原创 设计模式系列文章(基础篇第22篇):访问者模式——分离数据结构与操作,实现灵活扩展
1. 核心定义访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下,定义作用于这些元素的新操作。访问者模式的核心是分离数据结构与数据操作,让操作可以独立扩展。通俗理解:访问者模式就像我们生活中的审计人员。一个公司(聚合对象)包含多个部门(元素),每个部门的职责和数据(如财务部门的收支数据、人事部门的员工数据)是固定的(数据结构固定)。
2026-06-12 13:54:26
312
原创 设计模式系列文章(基础篇第21篇):迭代器模式——遍历聚合解耦,实现统一迭代访问
1. 核心定义迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式又称游标模式(Cursor Pattern),核心是分离聚合对象与遍历逻辑,提供统一的迭代访问接口。通俗理解:迭代器模式就像我们生活中的图书管理员。
2026-06-10 16:49:51
382
原创 设计模式系列文章(基础篇第20篇):观察者模式——发布订阅解耦,实现状态同步通知
1. 核心定义观察者模式(Observer Pattern):定义对象间的一种一对多的依赖关系,当一个对象(主题Subject)的状态发生改变时,所有依赖于它的对象(观察者Observer)都会得到通知,并自动更新自己。观察者模式又称发布-订阅模式(Publish-Subscribe Pattern),核心是解耦发布者与订阅者,实现状态同步通知。通俗理解:观察者模式就像我们生活中的报纸订阅服务。
2026-06-10 16:49:41
724
原创 设计模式系列文章(基础篇第19篇):中介者模式——封装交互关系,解耦网状依赖
1. 核心定义中介者模式(Mediator Pattern):用一个中介者对象来封装一系列对象之间的交互,使这些对象之间不再直接引用,而是通过中介者间接通信。中介者负责协调各个对象之间的交互,减少对象之间的耦合度,使系统结构更清晰、更易于维护和扩展。中介者模式又称调停者模式,核心是封装交互、解耦依赖、统一协调。通俗理解:中介者模式就像我们生活中的房产中介。
2026-06-04 14:41:41
421
原创 设计模式系列文章(基础篇第18篇):状态模式——状态封装流转,实现行为动态适配
1. 核心定义状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式将对象的状态封装成独立的类,当对象内部状态发生变更时,切换对应的状态类实例,从而自动切换对应的行为逻辑,核心是状态决定行为,行为依附状态。通俗理解:状态模式就像我们日常使用的手机,不同模式下功能行为完全不同。手机在正常模式下,支持通话、上网、拍照等所有功能;开启省电模式后,自动关闭后台应用、降低屏幕亮度、限制性能,仅保留基础通话和短信功能;
2026-06-04 14:41:27
377
原创 设计模式系列文章(基础篇第 17 篇):备忘录模式——快照保存状态,实现无损回滚与撤销
1. 核心定义备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。备忘录模式又称快照模式,核心是“状态的封装保存与无损恢复”,核心目标是保护对象的封装性,同时实现状态的可回溯。通俗理解:备忘录模式就像我们手机的“备份与恢复”功能。手机(发起人)在系统更新前,会将当前的系统配置、应用数据等状态,保存到备份文件(备忘录)中;
2026-06-03 10:17:39
375
原创 设计模式系列文章(基础篇第 16 篇):命令模式——封装请求为对象,解耦发送与执行
1. 核心定义命令模式(Command Pattern):将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。命令模式的核心是分离请求的发送者与接收者,发送者只负责触发命令,接收者只负责执行命令,两者通过命令对象完成交互,互不直接依赖。通俗理解:命令模式就像餐厅点餐流程。顾客(请求发送者)只需要向服务员下单(触发命令),无需知道厨师(请求接收者)是谁、怎么做菜;服务员将订单(命令对象)传递给后厨,厨师按照订单完成做菜(执行命令)。
2026-06-03 10:17:26
379
原创 设计模式系列文章(基础篇第 15 篇):责任链模式——链式传递请求,解耦请求发送与处理
1. 核心定义责任链模式(Chain of Responsibility Pattern):将请求的处理者对象连成一条链,并将请求沿着这条链传递,直到链上的某一个处理者对象处理该请求为止。每个处理者对象都拥有对下一个处理者对象的引用,请求的发送者无需知道链上的具体处理者,只需将请求提交到链的入口,由链自行处理请求。通俗理解:责任链模式就像我们生活中的“审批流程”。比如员工提交一笔报销申请,需要经过部门经理审批、财务审批、总经理审批三个环节,这三个审批者就构成了一条责任链。
2026-06-02 09:46:56
332
原创 设计模式系列文章(基础篇第 14 篇):迭代器模式——统一集合遍历接口,解耦遍历逻辑与集合实现
1. 核心定义迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象(集合容器)中的各个元素,而又不暴露该对象的内部表示。迭代器模式将遍历逻辑封装在迭代器对象中,使集合容器只负责存储数据,迭代器负责遍历数据,实现数据存储与遍历逻辑的解耦。通俗理解:迭代器模式就像我们生活中的“导游”。
2026-06-02 09:46:45
368
原创 设计模式系列文章(基础篇第 13 篇):观察者模式——基于发布-订阅,实现组件解耦与消息通知
1. 核心定义观察者模式(Observer Pattern):又称发布-订阅模式(Publish-Subscribe Pattern),定义对象间的一种一对多依赖关系,当一个对象(被观察者/发布者)的状态发生改变时,所有依赖它的对象(观察者/订阅者)都会得到通知,并自动更新自己的状态。通俗理解:观察者模式就像我们生活中的“天气预报”。气象局(被观察者/发布者)负责监测天气变化,当天气发生变化(状态变更)时,会通过电视、手机APP、广播等渠道,向所有关注天气预报的人(观察者/订阅者)发布通知;
2026-06-01 11:13:47
498
原创 设计模式系列文章(基础篇第 12 篇):策略模式——封装多种算法,实现动态切换与解耦
1. 核心定义策略模式(Strategy Pattern):定义一系列算法,将每一种算法封装起来,并使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户端,即客户端无需修改代码,就能动态切换不同的算法实现。通俗理解:策略模式就像我们生活中的“出行方式选择”。我们要从家到公司(客户端需求),有多种出行策略(算法):地铁、公交、打车、骑行,每种出行方式都是一个独立的策略,它们都能实现“从家到公司”的目标,但具体实现方式不同(路线、耗时、费用不同);
2026-06-01 11:13:40
865
原创 设计模式系列文章(基础篇第 11 篇):模板方法模式——定义算法骨架,实现代码复用与流程统一
1. 核心定义模板方法模式(Template Method Pattern):定义一个算法的骨架,将算法中某些步骤的具体实现延迟到子类中。模板方法模式使得子类可以在不改变算法整体结构的前提下,重新定义算法中的某些步骤,从而实现代码复用和流程统一。通俗理解:模板方法模式就像我们生活中的“做饭模板”。做不同的菜(如番茄炒蛋、青椒肉丝),核心流程(算法骨架)都是“准备食材→处理食材→烹饪→装盘”,这个公共流程就是“模板”;
2026-05-29 10:26:25
371
原创 设计模式系列文章(基础篇第 10 篇):外观模式——封装复杂子系统,提供统一调用入口
1. 核心定义外观模式(Facade Pattern):为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易被使用。外观模式定义了一个高层类,封装子系统的复杂逻辑,客户端通过调用这个高层类的方法,间接调用子系统的各个接口,无需关心子系统内部的实现细节和模块交互。通俗理解:外观模式就像我们生活中的“前台接待”。公司内部有多个部门(研发部、人事部、财务部),每个部门都有自己的业务接口(研发部对接需求、人事部办理入职、财务部报销);
2026-05-29 10:26:01
360
原创 设计模式系列文章(基础篇第 9 篇):组合模式——统一整体与部分,实现层级结构管理
1. 核心定义组合模式(Composite Pattern):将对象组合成树形结构,以表示「部分-整体」的层次关系。组合模式使得用户对单个对象和组合对象的使用具有一致性,客户端无需区分操作的是叶子节点还是组合节点,可统一调用所有节点的公共方法。通俗理解:组合模式就是给树形结构的所有节点,定一个统一的「行为标准」。文件夹(组合节点)和文件(叶子节点)都实现同一个接口,都支持「展示信息」「计算大小」「删除」等操作;
2026-05-28 10:12:40
383
原创 设计模式系列文章(基础篇第 8 篇):桥接模式——解耦抽象与实现,实现多维度灵活扩展
1. 核心定义桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种用于解耦多维度变化、避免类爆炸的结构型模式,核心是“分离抽象与实现”,通过桥接对象建立两者的关联,实现灵活组合。通俗地说,桥接模式就像我们生活中的“插线板”:插线板(桥接角色)一端连接电源(抽象部分),另一端可以连接各种电器(实现部分);
2026-05-28 10:12:28
378
原创 设计模式系列文章(基础篇第 7 篇):装饰者模式——动态增强对象功能,实现功能灵活组合
1. 核心定义装饰者模式(Decorator Pattern):动态地给一个对象添加一些额外的职责。就增加功能而言,装饰者模式比继承更为灵活,它允许在不改变原有对象结构的前提下,动态扩展对象的功能。通俗地说,装饰者模式就像我们生活中的“装饰”或“包装”:比如一个苹果,原本只是一个基础水果(被装饰对象),我们可以给它包上保鲜膜(装饰者1,增加保鲜功能),再放进礼盒(装饰者2,增加美观功能),最终得到一个包装精美的苹果,苹果本身的结构没有改变,但新增了保鲜和美观的功能;
2026-05-27 10:16:27
371
原创 设计模式系列文章(基础篇第 6 篇):适配器模式——适配不兼容接口,实现协同工作
1. 核心定义适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作,其别名为包装器(Wrapper)。通俗地说,适配器模式就像我们生活中的“电源转换头”:国内的电源接口是两孔或三孔,而某些国外电器的插头是两扁头,无法直接插入国内插座,此时就需要一个转换头(适配器),将国外插头的接口转换为国内插座可兼容的接口,让电器正常通电。在代码中,这个“转换头”就是适配器,它接收一个不兼容的接口,转换后输出客户端可识别、可调用的接口。
2026-05-27 10:16:11
357
原创 设计模式系列文章(基础篇第 5 篇):代理模式——通过代理增强目标对象
1. 核心定义代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介作用,可在访问目标对象前后执行额外操作,实现对目标对象的增强。通俗地说,代理模式就像我们生活中的“中介”“经纪人”:比如我们想租房,不会直接找到房东(目标对象),而是通过中介(代理对象);中介会帮我们筛选房源、带看房屋、协商价格(额外操作),最终我们通过中介完成租房(访问目标对象),而房东无需直接与我们对接,也无需修改自己的租房流程。
2026-05-26 11:02:14
356
原创 设计模式系列文章(基础篇第 4 篇):抽象工厂模式——创建一组关联产品
1. 核心定义抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。通俗地说,抽象工厂模式就像一个“综合性的产品生产线”:它不仅能生产一种产品,还能生产一组相互关联、相互配合的产品。比如电脑工厂,不仅能生产CPU,还能生产配套的显卡、内存,且所有产品都属于同一个品牌,保证了产品之间的兼容性和关联性。我们使用时,只需找到对应的综合性工厂,就能一次性获取一组关联产品,无需分别创建每种产品,也无需担心产品组合错误。
2026-05-26 11:02:04
348
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅