自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 行为型设计模式之Interpreter(解释器)

给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语音中的句子。

2025-06-07 22:18:46 160

原创 行为设计模式之Command (命令)

需要发出请求的对象(调用者)和接收并执行请求的对象(执行者)之间没有直接依赖关系时。比如遥控器 每个按钮绑定一个command对象,这个Command对象内部持有真正执行操作的Receiver(如文档编辑器、打印服务)的引用,并知道调用Receiver的哪个方法。改变按钮功能只需更换绑定的Command对象。

2025-06-07 21:06:49 654

原创 行为型设计模式之Chain of Responsibility(责任链)

摘要:责任链模式是一种行为型设计模式,允许请求沿着处理链传递,直到被某个对象处理。该模式由Handler抽象类定义处理接口,ConcreteHandler具体实现处理逻辑,每个处理者决定处理请求或传递给下个处理者。适用于多个对象可处理请求、请求接收者不明确或需动态指定处理集合的场景。示例代码展示了请假审批链,从小组长到部门经理逐级审批,体现了责任链的动态处理机制。

2025-06-06 09:42:21 690

原创 结构型设计模式之Proxy(代理)

本文介绍了结构型设计模式中的Proxy(代理)模式,其核心思想是为对象提供代理以控制访问。代理模式适用于远程代理、虚代理、保护代理和智能引用等场景。文中通过Java代码示例演示了代理模式的实现:Proxy类作为RealSubject的代理,控制对真实对象的访问,并在请求前后添加额外操作。该模式在AOP环绕通知、动态/静态代理等场景中都有应用。

2025-06-04 15:09:01 460

原创 结构性设计模式之Flyweight(享元)

享元模式是一种结构性设计模式,通过共享对象来减少内存使用和对象创建开销。该模式将对象属性分为内部状态(可共享)和外部状态(不可共享),适用于大量相似对象场景。典型案例包括图形游戏(粒子效果、地图瓦片)、文本处理(字符样式)和UI控件。模式结构包含享元接口、具体享元类、享元工厂和客户端。文中以Java代码示例展示了如何实现共享圆形对象的颜色属性,而坐标作为外部状态单独处理,有效减少了对象创建数量。

2025-06-04 14:50:48 758

原创 结构性设计模式之Facade(外观)设计模式

Facade(外观)模式是一种结构性设计模式,它通过提供一个统一的高层接口来简化复杂子系统的使用。该模式的意图是为子系统中的一组接口提供一致的界面,使其更容易被调用。主要特点包括:Facade类了解子系统的内部结构,将客户端请求代理给适当的子系统对象子系统类实现具体功能,但不知道Facade的存在适用于需要简化复杂系统接口、降低系统耦合度或构建层次化子系统的情况示例代码展示了如何通过Facade类统一调用多个子系统的功能方法(methodOne、methodTwo等)。这种模式特别适合需要隐藏

2025-06-04 10:11:41 448

原创 结构型设计模式之Decorator(装饰器)

摘要: 装饰器模式是一种结构型设计模式,允许动态地为对象添加功能而不改变其源代码。本文通过李四的才艺展示案例演示了该模式的应用。关键点包括:1)意图是动态添加职责,比继承更灵活;2)结构包含Component、ConcreteComponent、Decorator和ConcreteDecorator四个角色;3)适用于需要透明扩展对象功能、支持功能撤销或无法使用子类扩展的场景。代码示例展示了如何通过DecoratorA和DecoratorB在原有"画画"才艺基础上逐步添加"唱歌"和"跳舞"功能,体现了装饰器

2025-06-03 11:48:55 1121

原创 结构性设计模式之Composite(组合)

摘要:Composite(组合)模式通过树形结构表示"部分-整体"层次关系,使得用户能够统一处理单个对象和组合对象。该模式包含Component(组件接口)、Leaf(叶子节点)和Composite(组合节点)三个核心角色,适用于需要表示对象层次结构并统一操作的场景。示例代码展示了文件夹结构的实现,Folder类管理子组件,File类作为叶子节点,通过递归遍历实现统一处理。该模式简化了客户端代码,使系统更易扩展和维护。

2025-06-03 09:50:17 540

原创 结构性设计模式之Bridge(桥接)

桥接模式是一种结构性设计模式,其核心思想是将抽象部分与实现部分分离,使二者能够独立变化。本文通过汽车产品生产案例(产品A/B与颜色红/蓝/黄)展示了桥接模式的应用:将颜色作为独立接口实现,产品类通过组合方式调用颜色功能。关键结构包括抽象产品类(Product)、具体产品类(ProductA)和颜色接口(Color)及其实现类(Red/Blue/Yellow)。该模式适用于需要避免抽象与实现固定绑定的场景,支持通过子类扩展功能,且修改实现不影响客户端代码。代码示例演示了如何为不同产品动态配置颜色。

2025-05-29 22:02:49 806

原创 结构性设计模式之Adapter(适配器)

本文介绍了结构性设计模式中的适配器模式(Adapter Pattern)。适配器模式分为类适配器和对象适配器两种形式,其核心思想是将一个接口转换为客户期望的另一个接口,类似"狸猫换太子"的替换逻辑。文章通过电影主角和替身演员的类比,生动解释了该模式的工作原理。代码示例展示了如何通过Adapter类将Adaptee(替身演员)的接口适配到Target(主角)接口,使不兼容的接口能够协同工作。适配器模式适用于需要让现有类与新接口协同工作的场景。

2025-05-29 09:58:59 438

原创 创建型设计模式之Singleton(单例)设计模式

Singleton(单例)设计模式确保一个类仅有一个实例,并提供全局访问点。其结构包含一个静态方法getInstance()用于获取唯一实例,构造方法私有化防止外部实例化。适用于需要控制实例数量(如配置管理、线程池等)或需通过子类扩展但客户端无需修改代码的场景。示例代码展示了通过静态变量实现线程安全的单例模式,多次调用getInstance()返回同一实例,验证了唯一性。

2025-05-28 14:29:44 477

原创 创建型设计模式之Prototype(原型)

摘要:Prototype(原型)设计模式通过复制现有对象来创建新对象,避免重复初始化操作。该模式包含Prototype接口声明克隆方法、ConcretePrototype实现具体克隆逻辑,以及Client客户端调用克隆操作。示例代码展示了Product类实现Prototype接口,通过clone()方法复制对象属性。这种模式适用于创建成本较高的对象,能提高性能并简化对象创建过程。(149字)

2025-05-28 11:47:37 627

原创 创建型模式之 Builder (生成器)

本文介绍了生成器(Builder)设计模式,属于创建型模式之一。该模式通过将复杂对象的构建与表示分离,使同一构建过程能创建不同表现形式。文章以小米汽车不同配置版本为例说明了模式意图,并提供了Java代码实现示例,展示了如何通过Director管理Builder来构建不同的Product。核心包括抽象Builder类、具体Builder实现类以及最终产品类,实现了通过相同构建过程生成不同配置产品的目标。

2025-05-28 10:49:18 527

原创 创建型模式之Abstract Factory(抽象工厂)

本文介绍了抽象工厂模式(Abstract Factory),它是一种创建型设计模式,提供了一种创建一系列相关对象的接口而无需指定具体类。文章通过手机工厂示例进行说明,展示小米和华为两个工厂分别生产不同类型产品(屏幕、芯片、键盘等)的实现过程。代码演示了如何定义抽象工厂接口、具体工厂类和产品类,并展示了运行结果。该模式适用于需要创建产品族且不依赖具体产品类的情况,能够提高系统的灵活性和可扩展性。

2025-05-27 15:04:41 495

原创 创建型模式之Factory Method(工厂方法)

工厂方法模式是一种创建型设计模式,通过将对象实例化延迟到子类来实现解耦。该模式包含抽象工厂接口、具体工厂类、抽象产品和具体产品四个要素,相比简单工厂模式更具扩展性。文章展示了工厂方法模式的结构图,并提供了Java代码示例,演示如何通过不同工厂(FactoryA/FactoryB)创建对应产品(ProductA/ProductB)的过程,体现了多态特性。这种模式适用于需要灵活扩展产品类型的场景,遵循开闭原则,但会引入更多类。

2025-05-26 15:12:43 703

原创 Simple Factory(简单工厂)

摘要:简单工厂模式是一种创建型设计模式,通过定义工厂类根据参数返回不同产品实例,这些产品通常具有共同父类。示例展示了使用静态工厂方法创建ProductA和ProductB的Java实现,但该模式违反了开放封闭原则,因为新增产品类型需要修改工厂类代码。

2025-05-26 15:00:52 443

原创 定时任务引起的死锁

定时任务备份数据引起的死锁

2025-03-18 19:53:53 304

原创 Spring之生命周期Bean的生成过程

spring的生命周期bean的创建过程

2025-03-12 22:52:55 1037

原创 页面静态化

Thymeleaf 实现页面静态化

2025-01-09 14:48:10 271

原创 布隆过滤器简介

布隆过滤器简介

2024-12-29 10:20:14 313

原创 项目报 OutOfMemoryError 、GC overhead limit exceeded 问题排查以及解决思路实战

项目报 OutOfMemoryError 、GC overhead limit exceeded 问题排查以及解决思路实战

2024-12-27 22:11:16 3917

原创 Cglib代理简单案例

Cglib代理简单案例

2024-12-23 22:58:45 228

原创 jdk动态代理demo

jdk动态代理demo案例

2024-12-23 22:28:27 293

原创 Caused by: com.alibaba.fastjson.JSONException: illegal input, offset 1, char 4

com.alibaba.fastjson.JSONException: illegal input, offset 1, char 1

2024-12-23 15:41:10 1918

原创 Redisson锁简单使用

redisson锁快速入门

2024-12-22 22:32:23 360

原创 javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.13.13 not verified:

javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.13.13 not verified

2024-12-20 16:03:46 1450

原创 java.io.IOException: Too many open files

Too many open files

2024-11-01 23:02:57 1796 1

原创 SpringBoot导出word文档

导出word

2024-10-31 10:34:46 1294

原创 Springboot 接入 WebSocket 实战

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。简单理解:1,常见开发过程中我们知道 Http协议,客户端请求一次,服务器响应一次,推送数据,不能主动的推送数据,每次请求都要做一个连接,非常消耗性能。2,websocket 建立一次链接,可以主动向客户端推送数据。

2024-10-12 10:17:16 1599 1

原创 nginx报“/app/nginx/client_body_temp/0000000003“ failed (13: Permission denied)

nginx报"/app/nginx/client_body_temp/0000000003" failed (13: Permission denied)

2024-10-09 09:44:35 945

原创 kafka简单使用

kafka的简单使用案例

2024-09-04 11:39:33 1709

原创 远程服务器copy,虚拟机环境执行sql脚本,导出sql脚本

服务器拷贝,导出数据、执行sql脚本

2024-09-04 11:04:02 385

原创 SpringBoot发送QQ邮箱

springboot发送QQ邮箱

2024-08-05 14:49:45 533 2

原创 linux中导出sql脚本

linux需要将数据库xx表导出sql脚本、数据迁移、数据备份…

2024-07-16 15:21:06 499

原创 scp user12.x2.1xx7.202:/home/yxyxzx/duxxp-xxud_xxjor_db-202407111647.sql . WARNING: REMOTE HOST IDEN

scp yzyuser@112.22.101.102:/xx/xx application.yml . 远程copy文件到本地

2024-07-16 14:18:44 497

原创 DBeaver导入脚本和导出数据

DBeaver工具使用,导出csv格式,导入sql脚本

2024-07-16 14:02:05 2340

原创 记录@Transactional和Date时间引起推送数据失败

记录@Transactional 事务引起的问题

2024-07-09 14:18:51 805

原创 Nginx 重启失败nginx: [alert] kill(3259, 1) failed (3: No such process)

[alert] kill(3259, 1) failed (3: No such process)

2024-06-12 23:01:05 1343

原创 UNABLE_TO_GET_ISSUER_CERT_LOCALLY: request to https://registry.npmjs.org/abab failed, reason: unable

执行前端工程,在命令行 输入 npm install 报以下异常。

2024-06-06 22:47:05 1056

原创 Field remoteLogService in com.ruoyi.common.log.service.AsyncLogService required a bean of type ‘com.

使用若依框架的定时任务结果报以下问题:报 Field remoteLogService in com.ruoyi.common.log.service.AsyncLogService required a bean of type ‘com.ruoyi.system.api.RemoteLogService’ that could not be found.

2024-06-05 19:10:02 1083

空空如也

空空如也

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

TA关注的人

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