自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java访问者模式详解

访问者模式(Visitor Pattern)表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。

2025-04-03 10:57:44 117

原创 Java模板方法模式详解

模板方法模式(Template Method Pattern)定义一个操作中的算法骨架,将某些步骤延迟到子类实现。

2025-04-03 10:54:27 198

原创 Java策略模式详解

策略模式(Strategy Pattern)属于行为型模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。

2025-04-03 10:48:28 350

原创 Java 状态模式 详解

状态模式

2025-04-03 10:13:55 449

原创 Java观察者模式详解

观察者模式

2025-04-03 09:47:05 325

原创 Java备忘录模式详解

需要提供撤销/重做功能需要保存对象历史状态需要实现事务回滚机制需要保存系统快照文本/图像编辑软件游戏存档系统数据库事务管理系统配置管理工作流状态保存正确使用备忘录模式可以实现灵活的状态管理,但需要注意内存和性能方面的考量。

2025-04-03 09:30:56 412

原创 Java中介者模式详解

对象间存在复杂的网状引用关系需要集中控制多个对象间的交互交互逻辑需要复用或统一管理系统需要动态调整交互方式GUI框架中的组件交互聊天应用中的消息传递分布式系统的协调服务工作流引擎游戏中的角色交互正确使用中介者模式可以简化系统架构,但需要注意避免中介者过度复杂化。

2025-04-03 09:29:57 364

原创 Java迭代器模式详解

/ 树节点// 创建深度优先迭代器// 创建广度优先迭代器// 深度优先迭代器return!i >= 0;i--) {需要统一遍历不同结构的集合需要支持多种遍历方式需要隐藏集合内部实现需要延迟加载或分批处理数据Java集合框架(Collection.iterator())数据库结果集遍历树形结构遍历文件系统遍历分页数据加载正确使用迭代器模式可以提高代码的复用性和灵活性,但对于简单遍历需求,直接使用for循环可能更简洁。

2025-04-03 09:27:16 265

原创 Java迭代器模式详解

/ 树节点// 创建深度优先迭代器// 创建广度优先迭代器// 深度优先迭代器return!i >= 0;i--) {需要统一遍历不同结构的集合需要支持多种遍历方式需要隐藏集合内部实现需要延迟加载或分批处理数据Java集合框架(Collection.iterator())数据库结果集遍历树形结构遍历文件系统遍历分页数据加载正确使用迭代器模式可以提高代码的复用性和灵活性,但对于简单遍历需求,直接使用for循环可能更简洁。

2025-04-03 09:25:11 276

原创 Java解释器模式详解

需要解释执行特定语法规则的场景简单语言或文法规则的实现需要频繁扩展语法规则的场景业务规则需要动态配置的情况规则引擎实现SQL条件解析数学公式计算正则表达式处理金融交易规则验证正确使用解释器模式可以提高系统的灵活性和可扩展性,但对于复杂语言解析,建议使用专门的解析器生成工具如ANTLR等。

2025-04-03 09:20:35 402

原创 Java命令模式详解

需要将请求调用者与执行者解耦的场景需要支持撤销/重做功能的系统需要实现事务或原子操作的场景需要排队或延迟执行请求的场景GUI事件处理(如按钮点击)事务系统宏录制功能任务调度系统智能家居控制正确使用命令模式可以提高系统的灵活性和可扩展性,但需要注意不要过度使用,对于简单操作直接调用可能更合适。

2025-04-03 09:19:19 268

原创 Java 责任链模式 详解

有多个对象可以处理同一请求需要动态指定处理流程需要解耦请求发送者和接收者处理流程可能变化的情况Web框架的过滤器链审批工作流系统异常处理系统事件处理管道中间件设计正确使用责任链模式可以提高系统的灵活性和可扩展性,但需要注意控制处理链的复杂度,避免性能问题。

2025-04-02 18:33:22 431

原创 Java 代理模式 详解

需要控制对复杂或敏感对象的访问需要为对象添加额外功能而不修改其代码需要实现延迟加载或远程访问需要添加访问日志、监控等功能RPC框架(如Dubbo)Spring AOP实现ORM框架(如Hibernate延迟加载)安全控制框架缓存实现正确使用代理模式可以提高系统的安全性和灵活性,但需要注意不要过度使用,以免增加系统复杂性。

2025-04-02 18:31:21 479

原创 Java 享元模式 详解

系统需要创建大量相似对象对象的大部分状态可以外部化内存占用是系统瓶颈需要集中管理共享资源文本/图形编辑器游戏开发(粒子、角色等)数据库连接池浏览器DOM节点管理正确使用享元模式可以显著降低内存消耗,但需要注意不要过早优化,应在性能分析确认内存是瓶颈后再考虑使用此模式。

2025-04-02 18:29:18 316

原创 Java外观模式详解

复杂子系统需要简单入口需要解耦客户端与子系统为分层系统提供统一入口遗留系统包装和重构框架设计API网关服务层封装复杂流程整合正确使用外观模式可以显著提高系统的易用性和可维护性,但需要注意不要过度封装,以免限制系统的灵活性。

2025-04-02 18:26:56 465

原创 Java装饰器模式详解

需要动态/透明地添加或撤销功能不适合使用子类扩展的情况需要组合多个独立扩展功能系统需要运行时添加功能Java I/O流体系Web中间件开发GUI组件装饰权限控制/日志记录等横切关注点正确使用装饰器模式可以提高系统的灵活性和可扩展性,但需要注意不要过度使用,以免增加系统复杂性。

2025-04-02 18:25:21 285

原创 Java 组合模式 详解

表示对象的部分-整体层次结构希望客户端忽略组合对象与单个对象的不同需要处理递归或嵌套结构的场景文件/目录系统GUI组件系统组织结构表示菜单系统XML/JSON文档处理正确使用组合模式可以简化复杂结构的处理,但需要注意不要过度使用,在确实存在树形结构需求时才采用此模式。

2025-04-02 18:23:37 288

原创 Java 桥接模式 详解

抽象和实现都需要扩展的场景需要避免多层继承的情况平台无关的架构设计运行时切换实现的需求GUI框架开发驱动程序开发跨平台应用数据库访问层正确使用桥接模式可以提高系统的灵活性和可维护性,但需要注意不要过度设计,在确实存在多个独立变化维度时才使用此模式。

2025-04-02 18:21:47 301

原创 Java 适配器模式 详解

集成遗留系统使用第三方库系统升级过渡期设备驱动开发企业系统集成框架扩展开发跨平台开发微服务接口适配正确使用适配器模式可以提高代码的复用性和系统的灵活性,但需要注意不要滥用,以免增加系统复杂性。

2025-04-02 18:20:26 393

原创 Java 原型模式 详解

对象创建成本高的场景需要动态配置对象的场景需要隔离对象创建细节的场景游戏开发(角色、道具复制)配置管理(配置模板复制)缓存实现(原型缓存)撤销/重做功能(状态保存与恢复)正确使用原型模式可以显著提高系统性能,但需要注意深拷贝/浅拷贝的选择以及clone方法的正确实现。

2025-04-02 18:18:26 521

原创 Java建造者模式详解

需要创建包含多个部件的复杂对象对象有多个变体或配置选项需要创建不可变对象希望提供清晰的创建API配置对象的构建DTO对象的创建测试数据的准备复杂领域模型的实例化正确使用建造者模式可以显著提高代码的可读性和可维护性,是Java开发者工具箱中的重要设计模式。

2025-04-02 18:15:45 417

原创 Java工厂模式详解

工厂模式是面向对象设计中最重要的模式之一,它通过将对象的创建与使用分离,提高了代码的灵活性和可维护性。根据业务复杂度选择合适的工厂模式变体在框架开发中广泛使用(如Spring的BeanFactory)与模板方法、策略等模式可以很好结合避免在简单场景中过度使用正确使用工厂模式可以显著提高代码的可维护性和扩展性,是每个Java开发者必须掌握的核心设计模式。

2025-04-02 18:11:47 640

原创 Java单例模式详解

Java 单例模式详解

2025-04-02 17:38:39 286

原创 Java设计模式概览

Java设计模式概览学习

2025-04-02 17:26:28 1557

原创 消息中心系统架构设计

消息中心系统架构

2025-03-27 18:52:07 323 1

原创 Redis + Caffeine多级缓存电商场景深度解析

redis + 本地 多级缓存

2025-03-27 14:07:47 985

原创 Redis为什么快?

redis 为什么 快?

2025-03-27 11:36:53 425

原创 Redis网络模型

redis 网络模型

2025-03-27 11:34:59 711

原创 Java基础概念汇总

JAVA基础知识 JavaEE

2025-03-27 11:24:42 447

原创 Redis常见面试问题汇总

Redis基础 Redis面试八股文

2025-03-27 10:31:07 757

原创 MySQL 常见面试问题总结

MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现在属于Oracle公司。✅ 开源免费(社区版)⚡ 性能高、运行速度快👥 支持多用户、多线程🖥️ 跨平台支持(Windows、Linux、Mac等)💻 支持多种编程语言接口📊 使用标准的SQL数据语言🔄 提供事务支持和外键约束🏢 支持大型数据库🛠️ 提供多种存储引擎选择🔒 良好的安全性和连接性事务定义事务是一组原子性的SQL查询,要么全部执行成功,要么全部失败回滚。

2025-03-26 11:22:45 733

原创 寻找重复数 - LeetCode 287 题解笔记

给定一个包含 n + 1 个整数的数组 nums,其数字都在 [1, n] 范围内(包括 1 和 n),已知至少存在一个重复的整数。假设 nums 只有一个重复的整数,返回这个重复的数。

2025-03-25 14:55:27 313

原创 SpringBoot 启动优化 问题

【代码】SpringBoot 启动优化 问题。

2025-03-25 11:45:16 357

原创 SpringBoot 启动优化 问题

Springboot 启动优化 问题

2025-03-25 11:44:56 480

原创 SpringBoot 面试八股文

springboot 面试 常见 问题

2025-03-25 11:29:16 1009

原创 Java并发编程面试汇总

JAVA并发编程

2025-03-25 00:03:04 1342

原创 Java并发编程面试代码练习

本文介绍了线程安全的单例模式以及两种实现生产者消费者问题的方法。第一种方法使用和Condition实现,第二种方法使用实现。两种方法各有优缺点,选择哪种方法取决于具体的应用场景和需求。

2025-03-20 19:16:54 324

原创 Kafka 八股文

Kafka 八股文

2025-03-19 19:13:42 828

原创 RabbitMQ八股文

rabbitmq 八股文

2025-03-19 16:40:34 1082

原创 Java多线程打印问题

Java多线程面试 常见笔试题 解决方法

2024-11-06 01:48:52 909 1

空空如也

空空如也

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

TA关注的人

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