- 博客(102)
- 收藏
- 关注
原创 J2EE模式---拦截过滤器模式
拦截过滤器模式通过在请求处理前后插入过滤器,实现了通用功能与核心业务逻辑的分离,提高了代码的可维护性和复用性。它是 Web 应用和企业级应用开发中的重要模式,被广泛应用于各种框架和系统中。在实际开发中,合理使用拦截过滤器模式可以帮助我们构建更加灵活、可维护的系统,但需要注意控制过滤器的数量和复杂度,避免影响系统性能。
2025-07-22 13:55:34
735
原创 J2EE模式---前端控制器模式
前端控制器模式通过集中处理所有请求,简化了应用程序的请求处理机制,提高了系统的可维护性和可扩展性。它是 J2EE 和 Web 应用开发中的重要模式,被广泛应用于各种 MVC 框架中。在实际开发中,合理使用前端控制器模式可以帮助我们构建结构清晰、易于维护的应用系统,但需要注意控制前端控制器的复杂度,避免成为系统瓶颈。
2025-07-22 13:17:33
720
原创 J2EE模式---MVC模式
MVC 模式是 J2EE 开发中的核心架构模式,通过将应用程序分为模型、视图和控制器三个独立组件,实现了代码的解耦和复用。它在 Web 应用开发中尤为重要,能够提高团队协作效率、简化代码维护和增强系统扩展性。在实际开发中,应根据项目规模和复杂度选择合适的 MVC 框架,并遵循最佳实践以确保代码质量。
2025-07-20 22:18:33
738
原创 Java行为型模式---解释器模式
解释器模式通过定义语言的文法表示和解释器,实现了对语言句子的解释执行。它在简单语言解析场景中非常有用,能够将语法规则的定义和解释分离,提高代码的可维护性和可扩展性。然而,对于复杂的语法结构,解释器模式的实现会变得非常繁琐,此时应考虑使用专业的解析工具。在实际开发中,解释器模式常用于数学表达式计算、配置文件解析、简单脚本语言实现等场景。
2025-07-20 22:16:09
702
原创 Java行为型模式---中介者模式
中介者模式通过引入一个中介对象来封装对象间的交互,将多对多的依赖关系转化为一对多的关系,从而降低系统的耦合度,提高可维护性和可扩展性。它在需要集中控制对象交互的场景中尤为有用,如 GUI 系统、消息队列、多人游戏等。合理使用中介者模式可以使系统结构更加清晰,但需注意控制中介者类的复杂度,避免其成为系统的瓶颈。
2025-07-19 23:41:27
867
原创 Java行为型模式---访问者模式
访问者模式通过将对象操作的定义与对象本身分离,实现了对不同类型元素的操作扩展,同时保持了元素类的稳定性。它特别适用于需要对稳定对象结构定义多种操作的场景,通过新增访问者类即可轻松添加新操作,符合开闭原则。在实际开发中,访问者模式常用于编译器设计、XML 处理、报表生成等领域。合理使用访问者模式可以提高系统的可扩展性和可维护性,但需要注意控制类的数量和维护访问者与元素之间的关系。
2025-07-19 23:40:35
906
原创 Java行为型模式---状态模式
状态模式通过将对象的状态相关行为封装在独立的状态类中,并将状态转换逻辑集中管理,实现了对象行为的动态变化。它在不修改对象类的前提下,允许对象在内部状态改变时改变其行为,是处理复杂状态转换场景的理想选择。在实际开发中,状态模式常用于工作流系统、游戏开发、状态机实现等领域。合理使用状态模式可以提高系统的可维护性和可扩展性,但需要注意控制类的数量和状态转换逻辑的复杂度。
2025-07-19 23:39:25
1055
原创 Java行为型模式---备忘录模式
备忘录模式通过将对象状态的保存和恢复封装在独立的备忘录类中,实现了对象状态管理的解耦和封装。它在不破坏对象封装性的前提下,允许对象在需要时恢复到之前的状态,是实现撤销 / 重做功能、事务回滚、游戏存档等场景的理想选择。在实际开发中,合理使用备忘录模式可以提高系统的可维护性和用户体验,但需要注意控制内存消耗和管理复杂度。
2025-07-17 10:29:22
923
原创 Java行为型模式---命令模式
命令模式通过将请求封装为对象,实现了请求的发送者和接收者之间的解耦,使系统更具灵活性和可扩展性。它支持命令的排队、记录、撤销等功能,广泛应用于需要处理多种请求、支持撤销操作或异步执行的场景。在实际开发中,命令模式常用于 GUI 系统、事务管理、任务调度等领域。合理使用命令模式可以提高代码的可维护性和复用性,但需要注意控制类的数量和实现复杂度。
2025-07-17 10:28:16
847
原创 Java行为型模式---责任链模式
责任链模式通过将请求的处理者组织成一条链,实现了请求的发送者和接收者之间的解耦。它允许动态地组合处理者,使系统更加灵活和可扩展。在实际开发中,责任链模式常用于多级审批、请求过滤、事件处理等场景。合理使用责任链模式可以提高代码的可维护性和复用性,但需要注意链的长度和处理顺序对系统性能的影响。
2025-07-15 20:16:31
562
原创 Java行为型模式---迭代器模式
迭代器模式通过分离聚合对象的存储逻辑和遍历逻辑,实现了代码的解耦和复用。它在 Java 集合框架中应用广泛,是处理集合遍历的标准方式。合理使用迭代器模式可以简化客户端代码,隐藏聚合对象的内部结构,并支持灵活的遍历方式。在实际开发中,除非需要自定义聚合结构或特殊遍历逻辑,否则优先使用 Java 内置的Iterator接口及其实现。
2025-07-15 20:15:39
818
原创 Java行为型模式---观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,其核心思想是定义对象间的一种一对多依赖关系,使得当一个对象状态发生改变时,所有依赖它的对象都会得到通知并自动更新。观察者模式是一种非常实用的设计模式,它通过定义对象间的一对多依赖关系,实现了对象间的松耦合通信。在实际开发中,观察者模式常用于事件处理系统、实时数据监控、消息传递等需要状态变化通知的场景。不过,自 Java 9 起,这些类已被标记为过时,推荐使用自定义实现或第三方库(如 Guava)。,其中被观察的对象称为。
2025-07-13 17:52:48
574
原创 Java行为型模式---策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,其核心思想是定义一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户端,符合开闭原则(对扩展开放,对修改关闭)。策略模式是一种非常实用的设计模式,它通过将算法封装并使其可互换,提高了代码的灵活性和可维护性。在实际开发中,策略模式常用于电商折扣系统、支付方式选择、游戏 AI 等需要动态选择算法的场景。
2025-07-13 17:51:47
440
原创 Java结构型模式---享元模式
享元模式是一种通过对象共享来优化资源利用的设计模式,特别适用于处理大量细粒度对象的场景。在实际开发中,该模式常用于图形渲染、游戏开发、缓存系统等需要高效管理资源的领域。享元模式(Flyweight Pattern)是一种结构型设计模式,其核心思想是通过共享对象来减少内存使用和提高性能。该模式通过将对象的状态分为。(不可共享的变化部分),并缓存已创建的对象,从而避免重复创建相同的对象。(可共享的不变部分)和。
2025-07-13 17:49:46
544
原创 Java结构型模式---外观模式
外观模式(Facade Pattern)是一种结构型设计模式,其核心思想是为复杂的子系统提供一个统一、简化的接口,使客户端通过这个接口可以更方便地使用子系统的功能,而无需直接与子系统中的多个组件交互。外观模式隐藏了系统的复杂性,将客户端与子系统解耦。外观模式是一种非常实用的设计模式,它通过提供一个统一的接口,简化了复杂系统的使用方式,降低了客户端与子系统之间的耦合度。在实际开发中,外观模式常用于构建易于使用的 API、封装第三方库或遗留系统等场景。
2025-07-13 17:48:42
359
原创 Java结构型模式---组合模式
组合模式是一种非常实用的设计模式,它通过树形结构表示 "部分 - 整体" 关系,使客户端可以统一处理单个对象和组合对象。组合模式是一种结构型设计模式,其核心思想是将对象组合成树形结构以表示 "部分 - 整体" 的层次关系。组合模式使得用户对单个对象和组合对象的使用具有一致性,即在使用过程中无需区分是单个对象还是组合对象。- 在抽象组件中声明所有管理子组件的方法,叶子组件和复合组件都实现这些方法。- 在抽象组件中只声明公共方法,管理子组件的方法只在复合组件中声明。上述示例采用的是安全式实现。
2025-07-11 23:54:33
659
原创 Java结构型模式---桥接模式
桥接模式是一种结构型设计模式,其核心思想是将抽象部分与实现部分分离,使它们可以独立地变化。桥接模式通过组合的方式建立两个类之间的联系,而不是通过继承,从而降低了抽象和实现之间的耦合度。桥接模式是一种非常实用的设计模式,它通过分离抽象和实现,使系统更加灵活、可扩展。在实际开发中,桥接模式常用于需要处理多个变化维度的场景,如跨平台应用、图形界面系统等。
2025-07-10 22:39:23
755
原创 Java结构型模式---装饰者模式
装饰者模式是一种结构型设计模式,其核心思想是动态地将责任附加到对象上,从而实现对对象功能的扩展。与继承相比,装饰者模式提供了更灵活的替代方案,它通过组合的方式在运行时为对象添加新功能,而无需修改其原有结构。装饰者模式是一种非常实用的设计模式,它通过组合而非继承的方式为对象提供了灵活的功能扩展能力。在实际开发中,装饰者模式常用于需要动态扩展对象功能的场景,如 Java I/O 流、GUI 组件等。
2025-07-09 23:29:15
645
原创 Java结构型模式---适配器模式
适配器模式是一种结构型设计模式,其核心思想是将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式就像一个 "转换器",将两个不兼容的接口进行适配。适配器模式是一种非常实用的设计模式,它通过引入一个适配器类来解决接口不兼容的问题,使得原本不能一起工作的类可以协同工作。对象适配器通过持有适配者类的实例并实现目标接口来实现适配。类适配器通过继承适配者类并实现目标接口来实现适配。双向适配器允许两个不兼容的接口可以互相适配。
2025-07-08 17:47:23
1064
原创 Java结构型模式---代理模式
代理模式是一种非常实用的设计模式,它通过引入代理对象来控制对真实对象的访问,提供了增强功能、控制访问和提高性能的能力。在实际开发中,动态代理和 CGLIB 代理更为常用,它们提供了更灵活的代理机制。代理模式是一种结构型设计模式,其核心思想是通过创建一个代理对象来控制对另一个真实对象的访问。代理对象在客户端和真实对象之间起到中介作用,允许在不改变真实对象的前提下,对其进行增强或控制。静态代理是指在编译时就已经确定代理类和被代理类的关系,代理类需要手动编写。
2025-07-08 17:45:27
796
原创 Java创建型模式---原型模式
原型模式是一种创建型设计模式,其核心思想是通过复制(克隆)现有对象来创建新对象,而无需依赖显式的类实例化过程。这种模式适用于创建对象成本较高(如初始化时间长、资源消耗大)或需要避免复杂的对象创建逻辑的场景。原型模式是一种非常实用的设计模式,它通过复制现有对象来创建新对象,避免了复杂的对象创建过程,提高了性能和灵活性。在实际开发中,根据对象的复杂度和需求,可以选择浅克隆或深克隆来实现原型模式。- 复制对象时,仅复制对象本身及其基本数据类型字段,而引用类型字段仍指向原对象的引用。
2025-07-07 19:03:29
592
原创 Java创建型模式---建造者模式
建造者模式是一种创建型设计模式,其核心思想是将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。建造者模式允许你分步构建一个复杂对象,通过相同的构建步骤可以得到不同的表示形式。建造者模式是一种非常实用的设计模式,它能够将复杂对象的构建过程与表示分离,提高代码的可维护性和可扩展性。在实际开发中,链式调用的建造者模式更为常见,它简化了经典模式的结构,使代码更加简洁易用。
2025-07-06 00:33:04
691
原创 Java创建型模式---工厂模式
工厂模式是一种创建型设计模式,其核心思想是将对象的创建和使用分离。通过使用工厂模式,可以将对象创建逻辑集中管理,提高代码的可维护性和可扩展性。工厂模式是一种非常实用的设计模式,它能够将对象的创建和使用分离,提高代码的可维护性和可扩展性。在实际应用中,需要根据具体场景选择合适的工厂模式实现。简单工厂模式是工厂模式的基础实现,它定义了一个创建对象的类,根据参数的不同返回不同类的实例。抽象工厂模式提供一个创建一系列相关或依赖对象的接口,而无需指定它们具体的类。:实现简单,将对象创建和使用分离。
2025-07-05 22:38:16
595
原创 Java创建型模式---单例模式
单例模式是一种创建型设计模式,其核心思想是确保一个类仅有一个实例,并提供一个全局访问点来获取这个实例。单例模式虽然简单,但在实际应用中需要根据具体场景选择合适的实现方式,同时注意处理好各种边界情况,确保单例的唯一性和安全性。:实现复杂,需要理解 volatile 关键字的作用。:类加载时就创建实例,可能造成资源浪费。:线程安全,延迟加载,性能优化。:线程安全,延迟加载,实现简单。:同步方法开销大,影响性能。:延迟加载,避免资源浪费。:实现简单,线程安全。:线程安全,延迟加载。
2025-07-05 22:15:43
539
原创 Java中String、StringBuffer和StringBuilder的区别
在 Java 里,String和这三者都是用于处理字符串的类,但它们在本质、线程安全性以及性能方面存在明显差异。
2025-07-04 12:09:21
274
原创 java中==和equals的区别
equals比较方式适用场景比较内容==基本数据类型引用数据类型值引用(内存地址)equals引用数据类型内容(需类重写该方法)
2025-07-04 11:35:36
236
原创 Intellij IDEA中Maven的使用
通过以上步骤,你可以在 IDEA 中高效使用 Maven 管理项目依赖、构建和部署。是 Maven 项目的核心配置文件,用于管理依赖和插件。
2025-07-03 23:55:21
1018
原创 Redis为什么是单线程
Redis 选择单线程,是为了在内存数据库的核心场景(高频、轻量操作)中,通过避免多线程开销和复杂性,最大化性能和稳定性。其高效的 I/O 模型和后续的多线程优化(如网络 I/O 多线程),进一步弥补了单线程的局限,使其成为高性能缓存和数据库的标杆。
2025-07-01 21:35:39
896
原创 Java中for与foreach
特性普通for循环foreach循环语法复杂度较高较低索引访问支持不支持修改集合结构需谨慎操作不允许,会抛出异常适用范围灵活,适用于各种场景仅适用于遍历代码可读性较低(循环逻辑复杂时)较高一般来说,如果你需要访问索引或者修改集合结构,建议使用普通for循环;如果只是简单地遍历集合或数组,使用foreach循环会让你的代码更加简洁。
2025-06-30 21:42:16
401
原创 Java 接口性能优化三
拒绝经验主义,依赖数据决策优化前必须通过监控工具量化瓶颈(如用 SkyWalking 确认是数据库慢查询还是 Redis 超时),避免凭「感觉」优化 —— 例如盲目加索引可能导致写入性能下降,反而得不偿失。平衡性能与可维护性过度优化会导致代码复杂度飙升(如为减少 3ms 耗时引入复杂的异步逻辑),后续维护成本剧增。需设定「性能阈值」(如 P99 响应时间 < 500ms),达标后即可停止优化,优先保证代码可读性。随业务增长动态迭代。
2025-06-29 00:45:00
1859
原创 Java 接口性能优化二
数据库是接口性能的「重灾区」—— 超过 60% 的接口响应慢问题可追溯至低效的数据交互。优化需从「SQL 执行效率」「索引设计」「连接管理」三个维度突破。SQL 优化:让查询「少走弯路」核心原则:减少无效数据扫描,让数据库「只做必要的工作」。常见问题与优化:** 避免 SELECT ***:问题:返回冗余字段,增加数据传输量,无法利用覆盖索引。优化:明确指定需要的字段,如。通过 EXPLAIN 分析 SQL。
2025-06-29 00:15:00
1406
原创 Java接口性能优化一
在 Java 开发中,接口响应慢是最常见的性能痛点之一。用户点击按钮后等待超过 3 秒就可能失去耐心,系统吞吐量不足则会导致高峰期请求堆积甚至超时。这类问题往往不是单一环节的故障,而是代码逻辑、数据交互、框架配置、底层资源等多链路共同作用的结果。
2025-06-28 00:20:34
725
1
原创 Tomcat
Tomcat 是一个开源的 Servlet 容器,由 Apache 软件基金会开发,用于运行 Java Web 应用程序。它实现了 Servlet 和 JSP 规范,能够处理 HTTP 请求,并为 Web 应用提供运行环境。:支持 Session 复制和分布式部署,通过 mod_jk 或 mod_proxy 与 Apache HTTP Server 集成。接口,支持统一的生命周期管理(init、start、stop、destroy)。:Web 应用的部署描述符,定义 Servlet、过滤器和安全约束。
2025-06-25 14:24:49
628
原创 MyBatis与MyBatis-Plus的区别
通过以上对比可以看出,MyBatis-Plus 在保持 MyBatis 核心功能的基础上,显著提升了开发效率,尤其适合以 CRUD 操作为主的项目。但在复杂 SQL 场景下,仍需要结合 MyBatis 的原生能力。
2025-06-24 12:37:15
1277
【铁路智能运维管理】基于Spring AI的铁路设备维修系统设计与实现:集成ZhiPu AI对话模型和RAG功能
2025-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人