java设计模式

折哥的程序人生 · 物流技术专研9 天前
java·代理模式·装饰器模式·java面试·java设计模式·springaop·从踩坑到精通
Java 23 种设计模式:从踩坑到精通 | 番外:代理 vs 装饰器 —— Spring AOP 到底用了哪个?摘要:代理模式和装饰器模式是最容易被混淆的结构型模式,它们都持有目标对象的引用,都能在方法调用前后添加逻辑。但Spring AOP 用的是代理模式,Java I/O 流用的是装饰器模式。它们的核心区别是什么?本文从代码、UML、框架源码三个维度深度对比,结合 Spring AOP 的 JdkDynamicAopProxy 和 BufferedInputStream 的源码,帮你彻底分清这对“孪生兄弟”。
折哥的程序人生 · 物流技术专研9 天前
java·策略模式·java面试·comparator·模版方法模式·java设计模式·从踩坑到精通
Java 23 种设计模式:从踩坑到精通 | 番外:策略 vs 模板方法 —— 组合与继承的终极对决摘要:策略模式和模板方法模式都能消除重复代码,但策略用“组合”替换整体算法,模板方法用“继承”固定算法骨架。它们的核心区别在于控制权的归属——策略模式由客户端选择算法,模板方法由父类控制流程。本文从电商促销和数据同步两个实战场景出发,结合代码对比、UML 分析和 JDK 源码,带你彻底理解“组合优于继承”的真正含义。
折哥的程序人生 · 物流技术专研9 天前
java·spring·状态模式·策略模式·java面试·java设计模式·从踩坑到精通
Java 23 种设计模式:从踩坑到精通 | 番外:状态 vs 策略 —— if-else 消除的两条路,你走对了吗?摘要:状态模式和策略模式都能消除 if-else,都通过多态将不同逻辑封装到独立类中。但它们的核心区别在于谁来决定切换——状态模式中状态对象自己决定下一步流转,策略模式中客户端主动选择算法。本文从订单状态流转和促销策略计算两个实战场景出发,结合代码对比、UML 分析和 Spring State Machine 源码,帮你彻底分清这对“行为型双胞胎”。
折哥的程序人生 · 物流技术专研9 天前
java·spring·java面试·抽象工厂·工厂方法·java设计模式·从踩坑到精通
Java 23 种设计模式:从踩坑到精通 | 番外:工厂方法 vs 抽象工厂 —— 从单产品到产品族,架构如何演进?摘要:工厂方法和抽象工厂都是创建型模式,都用于解耦对象的创建与使用。但它们的核心区别在于粒度——工厂方法解决单一产品类型的横向扩展,抽象工厂解决产品族的纵向创建。本文从支付渠道对接的真实场景出发,沿着“简单工厂 → 工厂方法 → 抽象工厂”的演进路线,结合代码对比、UML 分析和 Spring、MyBatis 源码,帮你彻底搞懂这对“创建型兄弟”的选型边界。
折哥的程序人生 · 物流技术专研11 天前
java·设计模式·备忘录模式·行为型模式·java设计模式·从踩坑到精通·撤销重做
Java 23 种设计模式:从踩坑到精通 | 备忘录模式 —— 快照与撤销,给对象装一个“后悔药”摘要:当需要保存对象某一时刻的状态以便之后恢复(如撤销操作、游戏存档),但又不能破坏对象的封装性时,直接在对象外部保存其内部数据会严重侵犯封装原则。备忘录模式通过引入一个独立的备忘录对象来捕获原对象的内部状态,由原对象自己负责保存和恢复,从而在不暴露实现细节的前提下实现“后悔”功能。本文从文本编辑器的撤销需求出发,完整讲解备忘录模式的原理、UML、代码实现、与命令模式/原型模式的对比,并结合 JDK 序列化、数据库事务回滚、游戏存档等应用,帮你掌握“状态快照”的设计精髓。
折哥的程序人生 · 物流技术专研1 个月前
java·装饰器模式·java面试·结构型模式·java设计模式·javaio·从踩坑到精通
Java 23 种设计模式:从踩坑到精通 | 装饰器模式 —— 比继承更灵活的扩展方式,你用过吗?摘要:当需要为对象动态添加功能时,继承会导致子类膨胀且不够灵活。装饰器模式通过“包装”的方式,在不改变原有类的情况下透明地增强对象,支持多层嵌套和运行时组合。本文从“一杯咖啡”的计价场景出发,完整讲解透明装饰与半透明装饰的实现,结合 Java I/O、Spring 缓存等框架源码,并引入函数式接口与 Record 类等现代 Java 写法,帮你掌握“组合优于继承”的核心设计思维。
折哥的程序人生 · 物流技术专研1 个月前
java·组合模式·java面试·springsecurity·结构型模式·java设计模式·从踩坑到精通
Java 23 种设计模式:从踩坑到精通 | 组合模式 —— 树形结构处理,部分与整体一视同仁摘要:业务代码里充斥着 if-else 来判断是“文件”还是“文件夹”?每次新增一种节点类型都要修改十几处逻辑?在 2026 年的微服务架构中,这种“面条代码”往往是性能下降的隐形杀手。本文带你用组合模式彻底消灭这些重复判断——通过透明式与安全式的深度剖析,结合 Spring Security 源码实录与 AI 辅助编程演示,让你彻底掌握树形结构处理的终极奥义。
折哥的程序人生 · 物流技术专研1 个月前
设计模式·策略模式·代码重构·java设计模式·编排器·电子面单·从踩坑到精通
Java 23 种设计模式:从踩坑到精通 | 番外:编排器+策略模式在多平台电子面单中的实战(含性能压测)策略模式是Java设计模式中常用的行为模式,但很多开发者只知道用 if-else 判断平台类型,却不知道如何优雅地解耦流程与算法。本文将通过一个真实的多平台电子面单对接案例,展示如何将策略模式与编排器结合,实现“流程与策略完全解耦”,并落实开闭原则、单一职责原则。
雪碧聊技术4 个月前
工厂模式·java设计模式
Java设计模式实战:工厂模式,从“Hello World”到企业级架构的正确打开方式目录一、为什么我们需要工厂模式?二、核心套路一:简单工厂 (Simple Factory)1. 定义与结构
老鼠只爱大米7 个月前
java·设计模式·代理模式·proxy pattern·java设计模式·proxypattern
Java设计模式之代理模式(Proxy)深度解析代理模式(Proxy Pattern) 是一种结构型设计模式,通过创建代理对象控制对真实对象的访问。代理对象充当真实对象的替身,在客户端和真实对象之间引入间接层,实现访问控制、功能增强等目的。这种模式的核心价值在于:
老鼠只爱大米8 个月前
java·设计模式·装饰器模式·decorator·java设计模式
Java设计模式之装饰器模式详解装饰器模式(Decorator Pattern) 是一种结构型设计模式,允许向一个现有的对象添加新的功能,同时又不改变其结构。它是通过创建一个包装对象(装饰器)来包裹真实对象的方式实现的。
老鼠只爱大米8 个月前
java·设计模式·外观模式·facade·java设计模式
Java设计模式之外观模式(Facade)详解外观模式(Facade Pattern) 是一种结构型设计模式,它为复杂的子系统提供一个统一的接口,使得子系统更容易使用。这种模式通过创建一个高层接口,隐藏系统的复杂性,让客户端只需与这个接口交互,而不需要直接调用底层子系统。
老鼠只爱大米8 个月前
java·设计模式·适配器模式·adapter·java设计模式
Java 设计模式之适配器模式:系统集成的万能接口适配器模式(Adapter Pattern)是一种结构型设计模式,其核心使命是解决接口不兼容问题。它如同现实世界中的电源转换器,让不同标准的设备能够协同工作:
玩代码1 年前
java·命令模式·java设计模式
命令设计模式命令模式是一种行为型设计模式,它将请求封装为独立对象,实现请求发送者与接收者的解耦。以下是核心分析:命令接口(Command) 声明执行操作的通用方法:
像污秽一样1 年前
java·设计模式·软件设计模式·复习·java设计模式
软件设计模式期末复习模拟解析不懂为什么代理模式本质上与对象适配器模式是一致的目录一、单项选择题1.软件设计模式的两大主题是 ( )。
摘星编程1 年前
适配器模式·架构设计·java设计模式·接口兼容性·对象适配器
适配器模式深度解析:Java设计模式实战指南与接口兼容性解决方案🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不停歇的探索者。 ✨ 用代码丈量世界,用算法解码未来。我是摘星人,也是造梦者。 🚀 每一次编译都是新的征程,每一个bug都是未解的谜题。让我们携手,在0和1的星河中,书写属于开发者的浪漫诗篇。
柳~2 年前
java设计模式
Java设计模式-工厂模式关于Java的全部设计模式和分类,在单例模式中已有。定义创建对象的接口(工厂),让其子类决定实例化哪一个类。
不称职的程序员❦2 年前
设计模式·java设计模式·6大设计原则
24种设计模式介绍与6大设计原则(电子版教程)您是一个初级的 coder,可以从中领会到怎么设计一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术的使用;您是一个顶级的系统分析师,可以从中获得共鸣,寻找到项目公共问题的解决办法,呀,是不是把牛吹大了?
矩阵科学3 年前
设计模式·行为型设计模式·行为型模式·11中行为型设计模式·java设计模式
设计模式篇章(4)——十一种行为型模式这个设计模式主要思考的是如何分配对象的职责和将对象之间相互协作完成单个对象无法完成的任务,这个与结构型模式有点像,结构型可以理解为静态的组合,例如将不同的组件拼起来成为一个更大的组件;而行为型更是一种动态或者具有某个动作触发的事件,具有一定行为的设计模式。现在不清楚没关系,学完23种设计模式再回头看就能理解了。行为型模式包括:模板方法模式、策略模式、命令模式、职责链模式、状态模式、观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式、解释器模式共11种。设计模式开源地址:https://github
我是有底线的