设计模式 从入门到精通
文章平均质量分 94
设计模式是软件工程的“套路”,更是优秀代码的“基因”。无论是阅读 Spring、MyBatis 等主流框架源码,还是设计可维护的业务系统,背后都离不开对设计模式的灵活运用。本专栏系统讲解 GoF 23 种经典设计模式,从“是什么”到“为什么用”,再到“怎么用”和“何时不用”,结合 Java 实战代码
龙茶清欢
人生百年,终归尘土;心有所向,纵死不虚。人生的意义,不是被赋予的,而是在一次次选择中锻造出来的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
16、(行为型设计模式)Java 命令模式深度学习指南
Java命令模式深度学习指南摘要 本文深入探讨Java命令模式,专为后端开发者设计,涵盖定义、作用、与策略模式对比、应用场景及实现方式。命令模式通过封装请求为对象,实现操作参数化、排队、撤销和日志记录,适用于订单回滚、审计日志、任务队列等场景。文章详细解析经典实现(命令/调用者/接收者)、Spring Task和Kafka集成,并提供撤销/重做功能实现方案。同时包含避坑指南、最佳实践和面试常问题目,所有代码示例均含中文注释。核心价值在于解耦请求发送与执行,支持异步处理、操作回滚和系统审计,是构建健壮后端系统原创 2025-10-05 20:14:09 · 682 阅读 · 0 评论 -
15、(行为型设计模式)Java 责任链模式深度学习指南
《Java责任链模式核心摘要》 模式本质:解耦请求与处理,允许多对象按链式顺序处理请求,适用于权限校验、日志拦截、API网关等场景。 核心优势: ✅ 消除嵌套if-else ✅ 动态扩展处理器 ✅ 灵活调整执行顺序 ✅ 支持处理中断(如黑名单拦截) 典型实现对比: 手写经典版:定义处理器接口+抽象类,通过setNext()构建链 Spring集成: Filter:适合HTTP请求预处理(编码/CORS) AOP:基于注解实现业务逻辑拦截 Spring Gateway:内置过滤器链(路由/限流) 避坑指南:原创 2025-10-05 20:06:58 · 604 阅读 · 0 评论 -
14、(行为型设计模式)Java 观察者模式深度学习指南
《Java 观察者模式深度学习指南》摘要 本文系统讲解 Java 观察者模式,涵盖核心概念、应用场景及三种实现方式(JDK 原生、Spring 事件、响应式编程)。观察者模式通过松耦合的一对多依赖关系,实现状态变更自动通知,显著优于轮询机制。典型应用场景包括订单通知、缓存更新、系统监控等异步解耦需求。 重点内容: 对比轮询与观察者模式,突出后者在效率、实时性上的优势 详解三种实现: JDK Observable(已过时,仅作原理学习) Spring 事件机制(生产推荐) Reactive 响应式编程(现代方原创 2025-10-05 20:01:11 · 978 阅读 · 0 评论 -
13、(行为型设计模式)Java 模板方法模式深度学习指南
《Java模板方法模式深度学习指南》摘要: 本文深入讲解Java模板方法模式,适合后端开发者处理订单流程、审批流等业务场景。该模式通过定义算法骨架(父类)和可重写步骤(子类),实现"固定流程,灵活实现"的架构设计。文章对比了模板方法与策略模式的区别,分析了适用场景(如订单处理、数据导入等),并提供了三种实现方式:基础抽象类、Spring集成和Lambda表达式。指南包含中文注释示例,涵盖核心思想、作用、最佳实践及面试高频题,帮助开发者避免代码重复、强制流程规范,提高可维护性。关键区别在于原创 2025-10-05 19:55:56 · 867 阅读 · 0 评论 -
11、(结构型设计模式)Java 外观模式深度学习指南
《Java外观模式深度学习指南》摘要: 外观模式是一种结构型设计模式,通过统一接口封装多个子系统调用,降低复杂度。核心价值在于:1)简化客户端调用(如订单系统只需调用placeOrder());2)解耦客户端与子系统;3)支持微服务聚合/API网关等场景。与适配器模式不同,外观模式旨在简化而非兼容接口。典型实现包含子系统类(库存、支付等)和外观类(协调调用顺序与异常处理)。适用于多服务协同场景(如用户注册需调用5+服务),但单一服务调用不建议使用。Spring项目中可通过@FacadeService注解集成原创 2025-10-05 19:50:22 · 903 阅读 · 0 评论 -
10、(结构型设计模式)Java 代理模式深度学习指南
《Java 代理模式深度学习指南》摘要 代理模式是Java后端开发中控制对象访问的核心设计模式,通过代理对象在不修改原对象的前提下实现权限校验、日志记录、事务管理等增强逻辑。指南详细对比了代理与装饰器模式的本质区别(控制访问 vs 功能增强),并列举了权限控制、远程调用、AOP实现等8大典型应用场景。内容涵盖静态代理、JDK动态代理和CGLIB代理三种实现方式,提供中文注释示例代码,特别解析了Spring AOP的代理机制。最后给出生产环境避坑建议和面试高频题,帮助开发者掌握"代理即哨兵"原创 2025-10-05 19:45:33 · 600 阅读 · 0 评论 -
9、(结构型设计模式)Java 装饰器模式深度学习指南
《Java 装饰器模式深度学习指南》摘要 装饰器模式是一种动态扩展对象功能的结构型设计模式,通过组合而非继承实现功能叠加,符合开闭原则。核心思想是包装原始对象,在方法调用前后添加增强逻辑(如日志、缓存、加密等)。 ✅ 优势: 避免继承导致的类爆炸 支持运行时动态组合功能 每个装饰器专注单一职责 🔥 典型场景:日志增强、缓存注入、权限校验等。实现时需定义统一接口,装饰器持有被装饰对象引用,通过嵌套调用实现功能叠加。文中提供完整代码示例(含中文注释),展示如何组合日志、缓存、加密装饰器。 🌟 核心价值:用&原创 2025-10-05 19:40:49 · 718 阅读 · 0 评论 -
8、(结构型设计模式)Java 适配器模式深度学习指南
📘 Java适配器模式精华摘要 适配器模式是一种结构型设计模式,用于解决接口不兼容问题。通过将一个类的接口转换为客户端期望的接口,使原本无法协同工作的类能够一起工作。 🔍 核心价值: ✅ 兼容第三方库(如支付/短信SDK) ✅ 适配遗留系统(新旧接口转换) ✅ 统一接口规范(多服务标准对接) ✅ 避免源码修改(保护现有系统) 🛠️ 两种实现方式: 对象适配器(推荐):通过组合方式持有被适配对象 类适配器(Java单继承限制) ⚡ 典型场景: 支付系统(微信/支付宝接口统一) 日志框架迁移(Log4j→原创 2025-10-05 19:33:06 · 838 阅读 · 0 评论 -
6、(创建型设计模式)Java 抽象工厂模式深度学习指南
《Java抽象工厂模式深度学习指南》摘要 抽象工厂模式是一种创建型设计模式,用于创建一组相关或依赖对象(产品族)。与工厂方法模式相比,它更关注创建成套的协同工作对象,而非单个产品。核心优势包括:支持多环境配置(如开发/生产数据库切换)、保证产品一致性(避免MySQL连接配Oracle事务)、符合开闭原则。典型应用场景包括多数据库驱动、多租户系统、多UI主题等需要整体替换的场景。实现方式包含基础结构(抽象工厂接口+产品族)、枚举优化和Spring集成三种方案,其中Spring方案最推荐。关键设计原则是&quo原创 2025-10-05 19:27:07 · 893 阅读 · 0 评论 -
7、(创建型设计模式)Java 建造者模式深度学习指南
📌 Java 建造者模式核心摘要(148字) 本质:通过链式调用分步构建复杂对象,解决构造函数参数爆炸问题。核心优势: 1️⃣ 支持可选参数(避免重载多个构造函数) 2️⃣ 提升可读性(builder.name("张三").age(25).build()) 3️⃣ 天然实现不可变对象(final字段线程安全) 典型场景:DTO构建、SQL拼接、HTTP请求封装等含5+字段的复杂对象。实现方式: ① 手写Builder内部类(面试必考) ② Lombok注解简化 ③ Java Recor原创 2025-10-05 19:21:03 · 809 阅读 · 0 评论 -
17、(行为型设计模式)Java 状态模式深度学习指南
《Java 状态模式深度学习指南》摘要 本文系统讲解状态模式在Java开发中的应用,帮助开发者摆脱if-else状态判断困境。核心要点: 定义:允许对象在内部状态改变时自动切换行为,将状态封装为独立类 作用:消除条件判断、支持开闭原则、提高可维护性,特别适合订单系统、审批流程等场景 实现方式: 基础结构(状态接口+具体状态类+上下文) 结合Spring框架 集成状态机引擎 典型场景:订单状态流转、审批流程、工单系统等具有明确状态转换规则的业务 最佳实践:状态转换由状态类自身控制,避免外部逻辑判断 文含完整代原创 2025-10-05 18:44:14 · 661 阅读 · 0 评论 -
12、(行为型设计模式)Java 策略模式深度学习指南
《Java策略模式深度学习指南》摘要: 本文专为Java后端开发者设计,系统讲解策略模式从原理到落地的全流程。核心围绕消除if-else嵌套,实现运行时动态切换算法。内容包含:策略模式定义(行为型设计模式)、四大优势(解耦/扩展/测试/复用)、九大典型应用场景(折扣计算/支付路由等),并通过完整代码演示基础实现到Spring集成方案。特别提供四种实现方式对比(含上下文管理、枚举策略、函数式接口等),配套中文注释示例可直接用于项目重构。最后附有SpringBoot集成方案和六大避坑指南,帮助开发者掌握这一&q原创 2025-10-05 13:46:13 · 714 阅读 · 0 评论 -
5、(创建型设计模式)Java 工厂方法模式深度学习指南
📘 Java 工厂方法模式深度学习指南(摘要) 本文系统讲解工厂方法模式在Java开发中的核心应用,涵盖定义、作用、典型场景及实现方式。工厂方法通过将对象创建延迟到子类,实现开闭原则和解耦设计,特别适用于支付系统、日志处理等多实现场景。指南详细对比了简单工厂与工厂方法的区别,提供四种实现方案(含Spring集成),重点演示了"支付系统"案例,展示如何通过抽象工厂+具体工厂实现灵活扩展。文中所有示例均含中文注释,可直接用于项目开发,帮助开发者避免硬编码,提升代码可维护性和可测试性。最后还原创 2025-10-05 13:35:01 · 596 阅读 · 0 评论 -
4、(创建型设计模式)Java 单例模式深度学习指南
《Java单例模式深度学习指南》摘要: 本文系统讲解单例模式的核心概念、作用及Java实现。单例模式确保类在JVM中唯一实例,提供全局访问点,适用于数据库连接池、配置管理等场景。详细分析五种实现方式: 饿汉式(线程安全但可能浪费资源) 懒汉式(线程不安全版,禁止使用) 同步方法懒汉式(线程安全但性能差) ... 包含完整代码示例(带中文注释),涵盖Spring单例作用域、线程安全解决方案(双重检查锁、静态内部类)、典型使用场景判断标准及面试高频问题。帮助开发者掌握单例模式的正确使用姿势,避免常见陷阱。原创 2025-10-05 13:27:14 · 787 阅读 · 0 评论 -
3、Java 后端开发者必学设计模式实战手册
本文总结了Java后端开发中15种必须掌握的核心设计模式,包括单例、工厂、策略等常用模式,并提供了实战代码示例。文章强调学习设计模式应注重场景应用而非简单记忆,重点关注创建型(单例、工厂、建造者)、结构型(适配器、装饰器、代理)和行为型(策略、观察者、责任链)模式。每种模式都配有中文注释的完整代码,可直接用于项目开发,如单例模式的数据库连接池实现、工厂模式的支付系统应用等,帮助开发者快速掌握设计模式的精髓并在实际项目中灵活运用。原创 2025-10-04 16:49:24 · 705 阅读 · 0 评论 -
2、Java 设计模式避坑与演进思维
《设计模式避坑与演进思维》摘要 本文针对Java中高级开发者探讨设计模式的进阶应用与思维转变。核心观点: 警惕过度设计:通过真实案例对比(如支付逻辑用if-else优于强行套用策略模式),提出"三处重复才抽象,五处变化才用模式"的实践原则; 函数式编程的冲击:展示Lambda如何简化传统策略模式(用Map+Function替代类继承),但也指出状态管理等场景仍需面向对象; DDD中的模式新定位:强调模式应服务于领域模型(如工厂模式用于聚合根创建,仓库模式成为领域访问入口)。 关键结论:设原创 2025-10-04 16:30:38 · 862 阅读 · 0 评论 -
1、Java 后端开发者设计模式系统学习指南
摘要: 设计模式是软件设计中针对常见问题的可复用解决方案模板,由经验丰富的开发者总结提炼。其核心作用包括提升代码可维护性、增强复用性、降低耦合度、提高扩展性等,是架构师必备技能。根据GoF分类,设计模式分为创建型(如单例、工厂)、结构型(如装饰器、代理)和行为型(如观察者、责任链)三大类,共23种经典模式。使用时应遵循SOLID原则(单一职责、开闭原则等),避免过早优化,优先通过重构引入模式。后端开发中,工厂模式、建造者模式、代理模式等尤为实用。原创 2025-10-04 16:20:22 · 1037 阅读 · 0 评论
分享