- 博客(28)
- 收藏
- 关注
原创 23种设计模式-22访问者模式(Visitor Pattern)
摘要: 访问者模式是一种行为设计模式,用于分离对象结构与操作逻辑。它适用于对象结构稳定但操作频繁变化的场景,如编译器对语法树的不同处理。该模式通过Visitor接口定义访问方法,由具体访问者实现不同操作,元素类通过accept方法接受访问者调用。示例展示了图形对象(点、圆、矩形)的面积和周长计算,演示了如何在不修改元素类的情况下扩展新操作。访问者模式解决了数据与算法的耦合问题,但可能降低代码可读性,应谨慎使用。该模式适合需要跨类层次执行统一操作或频繁添加新操作的场景。
2025-12-26 14:42:30
831
原创 23种设计模式-21模板模式(Template Pattern)
摘要:模板模式是一种行为设计模式,它定义算法骨架,将可变步骤延迟到子类实现。适用于流程固定但部分步骤可变的场景,如数据导入、游戏流程等。该模式通过抽象类定义模板方法(final修饰防止重写)和抽象步骤,子类实现具体逻辑。示例展示了Game抽象类和Cricket/Football子类的实现,演示了如何复用公共流程同时支持扩展。模板模式能有效减少重复代码,规范执行顺序,提高可维护性,常与策略模式组合使用,是继承特性的典型应用。
2025-12-26 14:41:49
488
原创 23种设计模式-20状态模式(State Pattern)
本文介绍了状态模式(State Pattern),一种行为设计模式,允许对象根据内部状态改变行为。状态模式通过将状态相关逻辑封装到独立类中,使状态切换更清晰和可扩展。文章阐述了适用场景(如对象多状态、状态约束、复杂条件判断等)和核心结构(上下文、状态接口、具体状态类)。通过文档处理系统示例(草稿、审核、发布状态),展示了代码实现方式。状态模式能有效绑定状态与行为,避免条件分支扩散,提升业务流代码的可维护性,尤其适用于阶段性和状态驱动的业务场景。
2025-12-26 14:41:11
754
原创 23种设计模式-19策略模式(Strategy Pattern)
策略模式是在开发中最常见的设计模式之一,本文介绍了策略的基本原理及使用场景,以及基于 java 代码的普通实现和基于Spring 的实现案例。
2025-12-05 10:27:16
1871
原创 23种设计模式-18观察者(Observer)模式
观察者模式是一种行为设计模式,用于建立对象间一对多的依赖关系。当被观察者(Subject)状态变化时,会自动通知所有注册的观察者(Observer)进行更新。该模式包含Subject和Observer两个核心接口,以及它们的具体实现类。通过registerObserver()和removeObserver()方法可以动态管理观察者,实现松耦合的事件通知机制。观察者模式适用于事件发布订阅、数据驱动更新等场景,能够有效降低对象间的直接依赖关系,提高系统的灵活性和可维护性。
2025-12-04 17:11:30
1071
原创 23种设计模式-17备忘录模式
简化发起人实体类(Originator)职责,隔离状态存储与获取,实现了信息的封装,客户端 无需关心状态的保存细节;提供回滚功能消耗资源:如果需要保存的状态过多 Memento 类过大时,每一次保存都会消耗很多内存。
2025-12-04 17:08:47
642
原创 23种设计模式-16中介者模式
本文介绍了中介者模式(Mediator Pattern),这是一种行为设计模式,通过中介对象封装一组对象的交互,减少对象间的直接依赖,提高代码的可扩展性和可维护性。文章分析了适用场景(对象交互复杂、逻辑分散、需提高复用性),详细说明了模式结构(中介者接口、具体中介者、同事类),并提供了Java实现的聊天应用示例代码。该模式类似于现实中的中介角色,能有效处理对象间交互,适用于需要解耦复杂对象关系的场景。
2025-12-03 15:08:32
914
原创 23种设计模式-15解释器模式
摘要:解释器模式(Interpreter Pattern)是一种行为设计模式,用于定义语言的文法表示并构建解释器来执行特定语句。适用于解析数学/逻辑表达式、构建DSL、处理可变规则等场景。其核心结构包括抽象表达式接口、终结符表达式(处理基本元素)、非终结符表达式(组合操作)和上下文。示例展示了如何用该模式计算数学表达式(5+3)-2,通过构建表达式树实现解释执行。该模式适合简单语法规则的面向对象实现,但不适用于复杂场景,实际开发中使用频率较低。(149字)
2025-12-03 15:06:12
326
原创 23种设计模式-14迭代器模式
相信小伙伴们看到客户端在使用 iterator 对象遍历时就很有感触了。总之,当你需要遍历一个集合对象,但不想暴露其内部结构,或者希望提供多种遍历方式、统一遍历接口时,就可以使用迭代器模式。
2025-12-02 14:51:35
608
原创 23种设计模式-13命令模式
相信有的小伙伴已经体会到了,命令模式将命令本身和命名执行引擎拆分开来,我们增加 新的命令 只需要实现Command 接口,使用命令调用者对象调用就可以了,这也体现了易于扩展的理念。
2025-12-02 14:50:01
959
原创 23种设计模式-12责任链模式
摘要 责任链模式是一种行为设计模式,允许将请求沿着处理链传递,直到有对象处理它为止。该模式适用于多级审批流程、日志处理系统、事件过滤等场景。其核心结构包括抽象处理者(定义处理接口和链式关系)、具体处理者(实现具体处理逻辑)和客户端(构建处理链)。通过示例展示了日志记录器的实现,不同级别日志由不同处理器处理。该模式能有效解耦发送者和接收者,提高系统灵活性和可扩展性。
2025-12-01 18:33:34
674
原创 23种设计模式-11代理模式
本文介绍了代理模式(Proxy Pattern),这是一种结构型设计模式,通过为对象提供代理来控制访问。文章概述了代理模式的优点,包括访问控制、延迟初始化、日志记录和远程代理功能。详细说明了适用场景,如远程代理、虚拟代理、保护代理等。通过UML类图展示了代理模式的结构组成,包括接口、真实类和代理类。提供了图片查看器的代码示例,演示如何实现延迟加载功能。最后对比了代理模式与装饰器模式的关键区别,强调代理模式重在控制访问,而装饰器模式重在增强功能。文章内容全面,适合Java开发者学习设计模式应用。
2025-12-01 18:17:51
769
原创 23种设计模式-9外观模式
本文介绍了外观模式(Facade Pattern),这是一种结构型设计模式,通过为复杂系统提供简化接口来降低客户端使用难度。适用场景包括系统内部复杂但需对外提供简单接口、隐藏子系统细节等。外观模式的优点包括简化接口、松散耦合和更好分层。通过计算机启动的代码示例,展示了如何用外观类封装CPU、内存和硬盘等子系统组件,为客户端提供简单的start()方法。该模式核心思想是使用组合方式将复杂逻辑包装为简单方法,即使不了解该模式,开发者也常使用类似理念。
2025-11-27 19:02:19
818
原创 23种设计模式-8装饰器模式
装饰器模式是一种结构型设计模式,用于动态扩展对象功能而不修改其类定义。它通过包装原始对象的方式,在运行时灵活添加新行为。适用场景包括:无法修改原类但需扩展功能、需要组合多个功能、避免继承导致的子类膨胀等。模式结构包含组件接口、具体组件、装饰器基类和具体装饰器实现。示例展示了如何为形状对象动态添加红色边框功能。该模式遵循开闭原则,提供比继承更灵活的功能扩展方式。
2025-11-24 17:06:02
553
原创 23种设计模式-7组合模式
组合模式是一种结构型设计模式,用于构建树形结构,统一处理单个对象和组合对象。适用于目录、菜单等场景,支持动态增删子节点。结构包含组件接口(Component)、叶子节点(Leaf)和组合节点(Composite)。示例展示了文件系统的实现,通过递归调用统一操作文件和文件夹。该模式简化了树形结构的处理,提升代码扩展性
2025-11-24 17:05:29
595
原创 23种设计模式-6桥接模式
桥接模式是一种结构型设计模式,将抽象部分与实现部分分离,使它们能独立变化。该模式通过组合替代继承,解决多维度扩展导致的类爆炸问题。主要优点包括:分离抽象与实现、提高扩展性、符合开闭原则。结构包含抽象部分、具体抽象部分、实现部分和具体实现部分。代码示例展示了图形渲染场景,不同形状(抽象)与不同平台渲染器(实现)的组合使用。桥接模式适用于需要支持多维度变化、避免类数量激增的场景。
2025-11-23 20:01:28
347
原创 23中设计模式-5适配器模式
任何问题都可以在留言区指出,作者看到后会第一时间回复。概念总是生僻的,可以结合代码多体会多练习。(Adapter Pattern)是一种设计模式,用于将一个类的接口转换成客户期望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。它主要用于使现有的类与其他类的接口兼容,而无需修改其源代码。适配器模式通常分为两种总之,适配器模式是一种非常有用的设计模式,它能够,从而提高代码的复用性和可扩展性。
2025-11-23 20:00:28
725
原创 23种设计模式-4原型模式
本文介绍了原型设计模式(Prototype Pattern),这是一种通过复制现有对象来创建新对象的创建型设计模式。文章首先说明了适用场景,包括实例化成本高、避免类层次结构、创建过程复杂等情况。接着阐述了原型模式的结构,包含Prototype接口、ConcretePrototype实现类和Client客户端三个角色。最后提供了Java代码示例,演示如何实现原型模式,并特别指出clone方法的深拷贝和浅拷贝特性,提醒开发者根据需求选择合适的拷贝方式。
2025-11-22 15:16:46
898
原创 23种设计模式-3建造者模式
本文介绍了建造者模式(Builder Pattern)的概念和应用。建造者模式是一种创建型设计模式,用于分步骤构建复杂对象,特别适用于参数多、构造过程复杂的场景。文章对比了建造者模式与工厂模式的区别,详细说明了建造者模式的四个角色(产品、抽象建造者、具体建造者和指导者),并通过构建Computer对象的代码案例展示了具体实现。最后探讨了StringBuilder是否应用建造者模式的问题,指出它体现了建造者思想但并非经典实现。该模式能提高API清晰度,支持链式调用,提升代码可维护性。
2025-11-22 14:49:43
947
原创 23种设计模式-1单例模式
单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点。本文介绍了单例模式的适用场景(如全局配置、日志管理、数据库连接池等)和五种实现方式:1)饿汉式(类加载时创建实例);2)懒汉式(使用时创建,需加锁保证线程安全);3)双重检查锁定(减少同步开销);4)静态内部类(利用类加载机制实现延迟加载);5)枚举单例(简洁且防止反序列化攻击)。文章针对每种实现分析了优缺点和适用场景,帮助开发者根据需求选择合适的单例实现方式。
2025-11-20 19:11:12
388
原创 MyBatisPlus从入门到全忘
MyBatisPlus1. 简介官 网:https://mp.baomidou.com/视频地址:b站狂神说MyBatisPlus最新完整教程通俗易懂MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。2. 特征无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通
2021-11-14 15:13:23
330
原创 MyBatis从入门到全忘(狂神版)
MyBatis1、简介1.1什么是MyBatisMyBatis是一款优秀的持久层框架它支持自定义SQL、存储过程、以及高级映射。Mybatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或者注解来配置和映射原始类型、接口和JavaPOJO(Plain Old Java Objects、普通老实Java对象)为数据库中的记录。1.2持久化数据持久化持久化就是将程序的数据 在持久状态和瞬时状态转化的过程。内存:断电即失数据库:
2021-11-14 15:00:40
200
原创 改变环境变量配置,jdk版本不改变;Windows Installer程序包有问题,此安装需要的DLL不能运行。
改变环境变量配置,jdk版本不改变;Windows Installer程序包有问题因工作需要,将jdk版本从64位1.8改为32位的1.6.遇到以下问题:1.安装jdk1.6过程中Windows Installer程序包有问题,此安装需要的DLL不能运行。解决方法:下载一个windows install clean up,安装运行后将之前卸载不掉的jdk进行remove,然后重新安装即可。(推荐到腾讯软件中心下载)2.改变环境变量配置后,在命令窗口使用Java —version命令依旧显示旧的Jav
2020-08-11 10:17:44
1383
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅