- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 设计模式之中介者模式
中介者模式通过引入中介对象封装多个对象间的交互,使对象间无需直接引用,从而降低耦合度。各对象仅与中介者通信,交互逻辑集中管理,符合迪米特法则(最少知识原则)。
2025-07-06 22:40:06
433
原创 设计模式之备忘录模式
备忘录模式(Memento Pattern)是一种行为设计模式,用于在不破坏对象封装性的前提下捕获并保存其内部状态,以便后续可恢复到该状态。通过隔离状态存储逻辑,实现对象状态的保存与回滚,降低原对象的职责。核心是为对象提供“后悔药”机制。
2025-07-06 22:17:58
493
原创 设计模式之迭代器模式
迭代器模式将集合对象的遍历行为抽象为独立的迭代器对象,通过统一的接口(如 hasNext()、next())实现元素访问,使客户端无需关心底层数据结构。本质是分离集合的迭代逻辑与业务逻辑,实现遍历算法与数据结构的解耦,提升代码复用性和扩展性。
2025-07-06 14:41:01
263
原创 设计模式之访问者模式
访问者模式(Visitor Pattern)是一种行为型设计模式,其核心思想是将数据结构与数据操作解耦,允许在不修改现有对象结构的前提下定义作用于对象元素的新操作。访问者模式有以下核心要点:1)数据结构稳定,被访问的对象结构(元素类)相对固定,不频繁变动。2)操作可扩展,新增操作只需添加新的访问者类,无需修改元素类代码,符合开闭原则。3)双分派机制,通过accept(Visitor)和visit(Element)的两次动态绑定,根据元素类型调用对应操作。
2025-07-05 21:32:44
654
原创 设计模式之命令模式
命令模式(Command Pattern) 是一种行为型设计模式,核心思想是将请求封装为独立对象(命令对象),使请求的发送者与接收者解耦。其关键特性包括:1)请求对象化:将操作(如“打开文件”“撤销操作”)封装成包含执行方法的独立对象。2)调用者与执行者分离:调用者(Invoker)只需调用命令对象的统一接口,无需知晓具体执行细节。3)支持扩展操作:新增命令无需修改现有代码,符合开闭原则。
2025-07-05 19:15:07
533
原创 设计模式之观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,定义对象间一对多的依赖关系。当核心对象(被观察者)状态发生变化时,所有依赖它的对象(观察者)会自动收到通知并更新自身状态。其核心特点包括:1)松耦合:被观察者无需知晓观察者的具体实现细节,仅通过抽象接口交互。2)自动通知:状态变化触发自动广播,减少手动调用。3)别名:又称发布-订阅模式(Publisher-Subscriber),强调消息的分发机制。
2025-07-05 17:22:43
459
原创 设计模式之代理模式
代理对象作为客户端和真实对象之间的中介,替代真实对象处理请求,实现对访问的控制和功能增强。客户端通过代理间接操作真实对象,二者通常实现相同接口。
2025-07-03 22:47:55
512
原创 设计模式之享元模式
享元模式是一种结构型设计模式,它通过共享技术来高效地支持大量细粒度对象的重用。该模式的核心思想是将对象的状态分为: 内部状态(intrinsic): 可共享的部分,存储在享元对象内部。外部状态(extrinsic): 不可共享的部分,由客户端在使用时传入。
2025-07-01 23:03:07
469
原创 设计模式之组合模式
将对象组织成树状层次,通过统一的接口(如Component)管理所有节点(包括叶子节点和容器节点)。叶子节点处理基础操作,容器节点负责组合子节点并递归调用操作。。
2025-07-01 20:58:43
245
原创 设计模式之外观模式
外观模式(Facade Pattern) 是一种结构型设计模式,它提供了一个统一的接口,用来访问子系统中的一组接口。外观模式定义了一个高层接口,这个接口使得子系统更容易使用。
2025-06-30 22:28:15
320
原创 设计模式之桥接模式
桥接模式通过组合关系替代继承关系,将抽象层(功能定义)与实现层(具体操作)解耦,允许两者独立扩展。避免因多维度继承导致的类爆炸问题,提高系统灵活性和可维护性。
2025-06-29 16:17:09
621
原创 设计模式之建造者模式
建造者模式是一种创建型设计模式,其核心思想是将复杂对象的构建过程与其表示分离,使相同构建逻辑能生成不同结构的对象。该模式通过分步骤构建复杂对象,允许用户只指定对象类型和内容而无需了解内部构建细节。
2025-06-29 11:40:18
340
原创 发现xxx.xlsx中的部分内容有问题。是否让我们尽量尝试修复
1、开发过程中,我们经常会碰到需要引入jar的情况,在评审代码的时候,这个也要作为其中一项评审下。2、对于具体引入jar包的开发人员,要在jar引入后,查看下系统依赖的jar是否存在重复的情况。
2025-06-07 18:19:07
986
原创 宿主机中复制文件到虚拟机(Windows)D盘中报错
解决:清空回收站,清理用户临时文件夹等,释放C盘空间。无法将文件写入虚拟机,正在取消文件复制操作。
2024-09-09 11:31:39
701
原创 Parameter index out of range (1 > number of parameters, which is 0)
参数个数不匹配
2023-09-01 10:31:04
254
1
原创 mapper[] is ignored, because it exists, maybe from xml file
Mapper配置文件,方法名重复报错
2023-08-29 11:20:29
5382
原创 List集合封装成树形结构
1、定义java pojo@Data@ApiModel(“区域编码VO”)public class RegionCodeVO implements Serializable {@ApiModelProperty("区域id")private Long id;@ApiModelProperty("行政区划代码")private String regionCode;@ApiModelProperty("行政区划名称")private String regionName;@ApiMode
2022-03-10 17:31:34
502
1
原创 maven修改项目版本
maven修改项目版本idea下maven修改父子工程所有项目的版本号idea下maven修改父子工程所有项目的版本号1、进入控制台2、设置新版本号mvn versions:set -DnewVersion=‘1.0.7-SNAPSHOT’3、如果新版本号不正确,撤销版本号mvn versions:revert...
2022-01-24 18:18:38
1791
原创 记录一种属性注入无效的情况
1、lombok的@Data注解对于vToTrans这种形式的首个单词只有一个字母的情况,产生的getter和setter方法,名称如下:getVToTrans\setVToTrans。2、@Requestbody接收参数时,默认情况下对于vToTrans这种形式的属性,会寻找setvToTrans方法来对属性进行赋值。所以,对于这种首个单词只有一个字母的属性,如果使用了@Data来自动生成getter/setter方法,会导致属性赋值失败。解决方法:1、使用idea的快捷键来生成getter/set
2021-07-29 11:54:54
326
原创 记录一个存储过程使用
delimiter createprocedureup()begindeclarenomorerecordintegerdefault0;declaresidbigint;declareuidbigint;declarebankCodevarchar(255)default′′;declareaccountBankCodevarchar(255);declaretempVarcursorforselectid,userid,bankcodefromatablewhereisdelete=0andstates
2020-11-17 15:46:31
354
原创 今天开发遇到的问题2020-11-16
1、使用除法运算时,一定要制定保留位数,否则,当除不尽的时候,会报错。如下使用um.divide(new BigDecimal(“3”),2,BigDecimal.ROUND_HALF_UP)2、DecimalFormat 提供 RoundingMode 中定义的舍入模式进行格式化。默认情况下,它使用RoundingMode.HALF_EVEN。正确的四舍五入方式如下:DecimalFormat df = new DecimalFormat(“0.00”, RoundingMode.HALF_UP
2020-11-16 00:19:54
170
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅