
Java 设计模式
文章平均质量分 93
设计模式是软件开发中反复出现问题的通用解决方案,涵盖创建型、结构型、行为型等类别。它通过抽象和封装,优化代码结构,提升可维护性、扩展性与复用性,帮助开发者高效构建稳健、灵活的软件系统 。
Clf丶忆笙
倔强技术人,代码写得稀烂,博客更新不断。坚持用“菜”证明:我还能再抢救一下!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java设计模式之单例模式:从入门到精通
单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点。其核心特点包括唯一性、全局访问、自行创建和严格控制。单例模式常用于配置管理、日志记录、数据库连接池等场景。实现方式主要有饿汉式和懒汉式。饿汉式在类加载时即创建实例,保证线程安全但可能浪费资源;懒汉式在首次调用时创建实例,延迟加载但多线程环境下不安全。通过私有化构造函数、创建私有静态实例和提供公开访问方法,单例模式确保了类的唯一实例和全局访问。原创 2025-05-09 13:32:49 · 303 阅读 · 0 评论 -
Java设计模式全面详解:从基础到高级的23种模式简介
设计模式是软件设计中解决常见问题的典型方案,分为创建型、结构型和行为型三大类。创建型模式主要处理对象创建机制,包括单例模式、工厂方法模式、抽象工厂模式和建造者模式等。单例模式确保一个类只有一个实例,工厂方法模式通过子类决定实例化哪个类,抽象工厂模式创建相关对象的家族,而建造者模式则将复杂对象的构建与表示分离。这些模式通过预定义的解决方案,提高了代码的可维护性和可扩展性。原创 2025-05-09 10:19:26 · 399 阅读 · 0 评论 -
Java设计模式之工厂方法模式:从入门到精通
工厂方法模式是一种创建型设计模式,通过定义一个创建对象的接口,将具体实例化的过程延迟到子类中,从而实现对象的创建与使用的分离。该模式的核心思想是降低代码耦合度,提高可维护性和可扩展性。模式结构包括产品接口(Product)、具体产品类(ConcreteProduct)、工厂接口(Creator)和具体工厂类(ConcreteCreator)。基本实现步骤包括定义产品接口、创建具体产品类、定义工厂接口、实现具体工厂类以及客户端通过工厂接口创建产品。代码示例展示了电子产品工厂的实现,包括产品接口、具体产品类、工原创 2025-05-09 13:33:01 · 1234 阅读 · 0 评论 -
Java设计模式之抽象工厂模式:从入门到精通
抽象工厂模式是一种创建型设计模式,用于创建一系列相关或相互依赖的对象,而无需指定具体类。它通过定义抽象工厂接口和具体工厂类,将对象的创建与使用分离,确保客户端代码与具体实现解耦。该模式适用于多平台应用开发、多数据库支持、国际化等场景,能够保证产品族的一致性,并易于扩展。然而,它也可能增加系统复杂度,且扩展产品等级较为困难。与其他创建型模式相比,抽象工厂模式更适合处理多个相关产品的创建。通过定义抽象产品、具体产品、抽象工厂和具体工厂,客户端可以灵活地创建和使用不同风格的产品,如快餐店中的健康套餐和经典套餐。原创 2025-05-09 13:33:22 · 991 阅读 · 0 评论 -
Java设计模式之原型模式详解:从入门到精通
文章摘要: 原型模式是一种创建型设计模式,通过复制现有对象来创建新对象,适用于创建成本较高的场景。其核心概念包括原型、克隆、浅拷贝和深拷贝。Java中通过Cloneable接口和clone()方法实现,浅拷贝仅复制对象本身,深拷贝则复制对象及其所有引用对象。文章以试卷复印为例,展示了原型模式的具体实现,并介绍了原型管理器用于集中管理多种原型。该模式在需要高效创建相似对象时具有显著优势,同时支持灵活的对象复制策略。原创 2025-05-09 13:37:17 · 1062 阅读 · 0 评论 -
Java设计模式之建造者模式:从入门到精通
建造者模式是一种创建型设计模式,用于将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。该模式通过定义抽象建造者接口和具体建造者类,逐步构建复杂对象,并由指挥者控制构建流程。经典实现包括产品类、抽象建造者、具体建造者和指挥者四个角色,适用于构建过程复杂多变的场景。此外,静态内部类实现(链式调用)是Java中常见的变体,通过链式调用设置属性,简化了代码结构,适用于属性较多的对象创建。建造者模式的优点在于构建过程清晰,能够创建不同表示的对象,但缺点是需要创建多个类,代码量较大。原创 2025-05-09 13:38:16 · 1221 阅读 · 0 评论 -
Java设计模式之适配器模式:从入门到精通
适配器模式是Java中常用的结构型设计模式,用于解决接口不兼容的问题,使原本无法协同工作的类能够一起工作。适配器模式通过将类的接口转换为客户期望的接口,分为类适配器和对象适配器两种实现方式。类适配器通过继承实现,灵活性较低;对象适配器通过组合实现,更符合合成复用原则,推荐使用。适配器模式的核心在于接口转换和功能复用,遵循开闭原则、单一职责原则和合成复用原则。典型使用场景包括系统升级兼容、第三方库集成、接口标准化、遗留系统集成和接口版本过渡。Java I/O库中大量使用了适配器模式,如InputStreamR原创 2025-05-12 15:18:59 · 1099 阅读 · 0 评论 -
Java设计模式之装饰器模式:从基础到高级的全面解析(万字解析)
装饰器模式是一种结构型设计模式,允许在不改变对象结构的情况下动态地添加新功能。它通过创建一个装饰类来包装原有类,保持方法签名的完整性,同时提供额外功能。装饰器模式的核心思想是通过组合而非继承来扩展对象功能,具有高灵活性和动态性。其结构包括抽象组件、具体组件、抽象装饰类和具体装饰类。与继承相比,装饰器模式更灵活,可以在运行时动态添加或移除功能,但可能增加系统复杂度。实现步骤包括定义抽象组件接口、创建具体组件类、定义抽象装饰器类和实现具体装饰器类。装饰器模式适用于需要动态、透明地扩展功能的场景,符合开闭原则,但原创 2025-05-12 15:20:38 · 1275 阅读 · 0 评论 -
Java设计模式之代理模式:从入门到精通(保姆级教程)
代理模式是一种结构型设计模式,通过在客户端和目标对象之间引入代理对象来控制对目标对象的访问。代理模式的核心角色包括抽象主题(Subject)、真实主题(RealSubject)和代理(Proxy)。代理模式的主要类型有静态代理、动态代理、虚拟代理、保护代理、远程代理和智能引用代理。静态代理需要手动创建代理类,适用于编译时确定的场景,而动态代理则在运行时动态生成代理类,更具灵活性。代理模式的优点在于职责清晰、扩展性好和访问控制,但静态代理的缺点是类数量增加,且接口变化时需同步修改代理类。动态代理通过java.原创 2025-05-12 15:22:05 · 1303 阅读 · 0 评论 -
Java设计模式之外观模式:从入门到精通(保姆级教程)
外观模式是一种结构型设计模式,旨在通过提供一个统一的简化接口来隐藏复杂子系统的内部细节。本文深入探讨了外观模式的基础概念、核心角色及其优势,并通过家庭影院系统的代码示例详细展示了其实现过程。外观模式的核心角色包括外观(Facade)、子系统(SubSystem)和客户端(Client),其主要优势在于简化接口、解耦系统、提高易用性和灵活性。文章还介绍了动态外观模式的高级应用,通过接口和依赖注入实现更灵活的子系统管理。通过丰富的代码示例和图表,本文帮助读者全面理解并掌握外观模式的应用场景和实现方法。原创 2025-05-19 09:48:08 · 973 阅读 · 0 评论 -
Java设计模式之桥接模式:从入门到精通
桥接模式是一种结构型设计模式,旨在将抽象部分与实现部分分离,使它们能够独立变化。通过组合而非继承的方式,桥接模式解决了多维度变化带来的类爆炸问题。其核心思想是通过一个桥梁结构(Bridge)将抽象和实现解耦,从而提高系统的灵活性和扩展性。桥接模式的主要角色包括抽象类(Abstraction)、扩充抽象类(RefinedAbstraction)、实现接口(Implementor)和具体实现类(ConcreteImplementor)。该模式的优点包括提高系统灵活性、符合开闭原则和合成复用原则,但也增加了系统的原创 2025-05-19 09:49:31 · 844 阅读 · 0 评论 -
Java设计模式之组合模式:从入门到精通(保姆级教程)
组合模式是一种结构型设计模式,用于将对象组合成树形结构以表示"部分-整体"的层次关系。它使得客户端可以统一处理单个对象和组合对象,提升了代码的灵活性和可扩展性。 在组合模式中,主要包含三个角色: Component(抽象构件):定义所有对象的通用接口。 Leaf(叶子构件):表示没有子节点的对象。 Composite(容器构件):表示包含子节点的对象,并实现与子节点相关的操作。 组合模式的优点包括能够清晰地表示层次结构、统一处理对象和组合对象,并易于扩展。但其缺点在于设计复杂,且难以限制原创 2025-05-19 09:50:32 · 991 阅读 · 0 评论 -
Java设计模式之享元模式:从基础到高级的全面解析
享元模式是一种结构型设计模式,旨在通过共享技术减少大量细粒度对象的内存消耗。其核心思想是将对象的“内在状态”与“外在状态”分离,内在状态存储在享元对象内部且可共享,而外在状态由客户端维护且不可共享。享元模式通过共享相似对象来减少创建新对象的数量,从而提高性能和节省资源。典型的实现包括抽象享元类、具体享元类、享元工厂类和客户端。享元工厂负责创建和管理享元对象,确保相同内在状态的对象只被创建一次。通过这种方式,享元模式在处理大量相似对象时能够显著降低内存占用。原创 2025-05-19 09:51:15 · 1094 阅读 · 0 评论 -
Java设计模式之策略模式:从基础到高级的全面解析(保姆级教程)
策略模式是一种行为设计模式,允许在运行时灵活选择算法。通过定义公共策略接口和具体策略类,将算法封装并独立于客户端。核心组成包括策略接口、具体策略类、上下文类和客户端。以支付场景为例,展示了支付宝、微信和银行卡三种支付策略的实现方式,上下文类负责策略切换执行。还可结合工厂模式优化策略对象的创建管理,提高代码复用性和灵活性。该模式使算法可独立变化,增强了系统的扩展性。原创 2025-05-26 10:06:17 · 627 阅读 · 0 评论 -
Java设计模式之模板方法模式:从基础到高级的全面解析(最详解)
本文全面解析了模板方法模式,这是一种行为型设计模式,用于定义算法骨架并将具体步骤延迟到子类实现。文章首先介绍了基础概念,包括核心结构(抽象类和具体子类)和三类方法(模板方法、基本方法、钩子方法)。通过饮料制备的代码示例展示了模式的实际应用。深入解析部分探讨了"好莱坞原则"、模式优势与适用场景,并对比了其他设计模式。最后介绍了钩子方法等进阶应用,强调合理使用模板方法能提高代码复用性和扩展性。该模式适用于有固定流程但需要灵活扩展特定步骤的场景。原创 2025-05-26 10:07:25 · 1074 阅读 · 0 评论 -
Java设计模式之观察者模式:从基础到高级的全面解析
本文介绍了Java中的观察者模式,这是一种行为型设计模式,用于建立对象间的一对多依赖关系。当主题对象状态改变时,所有依赖它的观察者对象会自动收到通知并更新。文章通过杂志订阅的日常例子形象解释了该模式,详细阐述了四大角色:主题、具体主题、观察者和具体观察者,并展示了对应的类图结构。随后给出了实现步骤,包括定义主题和观察者接口、创建具体主题和观察者类,以及客户端使用方式,最后提供了一个气象站监测系统的完整代码示例。该模式实现了松耦合,使主题和观察者可以独立变化。原创 2025-05-26 10:09:28 · 873 阅读 · 0 评论 -
Java设计模式之责任链模式:从基础到高级的全面解析
责任链模式是一种行为设计模式,允许请求沿处理者链传递。该模式包含抽象处理者(定义处理接口)、具体处理者(实现处理逻辑)和客户端(构建处理链)三个核心角色。以请假审批系统为例,不同级别的审批人(主管、经理、总监)构成处理链,根据请假天数自动路由到对应审批人。代码实现展示了如何动态构建责任链和处理请求流转,体现了松耦合和灵活可扩展的优点。该模式适用于多级审批、日志过滤等场景,能有效降低发送者与接收者的耦合度。原创 2025-05-26 10:10:12 · 949 阅读 · 0 评论 -
Java设计模式之状态模式:从基础到高级的全面解析
摘要 状态模式是一种行为设计模式,它通过封装对象的不同状态及其行为,使对象在状态改变时自动改变行为。该模式包含三个核心角色:Context(上下文)、State(状态接口)和ConcreteState(具体状态实现)。与策略模式不同,状态模式强调状态间的自动转换和与上下文的交互。文章通过电灯开关和电商订单系统的案例,展示了状态模式从基础到高级的应用实现,包括状态接口定义、具体状态类实现和上下文管理。状态模式特别适用于行为随状态变化而改变的场景,如订单生命周期管理、游戏角色状态等复杂状态转换系统。原创 2025-06-03 09:24:44 · 97 阅读 · 0 评论 -
Java设计模式之迭代器模式:从基础到高级的全面解析
迭代器模式是一种行为设计模式,用于在不暴露集合内部结构的情况下顺序访问元素。该模式将遍历责任从集合对象转移到迭代器对象,核心组件包括抽象聚合(如Iterable)、具体聚合(如ArrayList)、抽象迭代器(如Iterator)和具体迭代器实现。Java集合框架已内置迭代器支持,开发者也可自定义多种遍历方式(如正序/逆序)。迭代器模式简化了集合实现,支持多种遍历并存,并确保遍历过程的安全性。典型应用场景包括统一访问不同结构的集合元素、需要多种遍历方式或隐藏集合内部细节的情况。原创 2025-06-03 09:25:35 · 1023 阅读 · 0 评论 -
Java设计模式之中介者模式:从基础到高级全面解析
中介者模式是一种行为型设计模式,通过引入中介对象封装对象间的交互,降低耦合度。核心角色包括抽象中介者(定义通信接口)、具体中介者(协调交互)、同事类(知道中介者对象)和具体同事类(实现通信)。实现步骤为:定义中介者接口→实现具体中介者→定义同事基类→实现具体同事类。典型应用如机场控制塔协调飞机起降,避免了对象间的直接引用。该模式简化了对象间通信,但中介者可能变得过于复杂。适用于对象间交互复杂且频繁变化的场景。原创 2025-06-03 09:26:51 · 724 阅读 · 0 评论 -
Java设计模式之备忘录模式:从入门到精通
摘要:备忘录模式是一种行为型设计模式,用于在不破坏封装性的前提下保存和恢复对象状态。它包含三个核心组件:原发器(保存状态的对象)、备忘录(存储状态的对象)和管理者(负责保存备忘录)。该模式适用于需要撤销/重做功能的场景(如游戏存档、文档编辑),优点在于状态恢复简便且封装性好,但可能消耗较多内存。实现时通过创建备忘录对象保存状态,并通过管理者进行状态管理。进阶应用可通过栈结构支持多状态保存与恢复,增强实用性。原创 2025-06-03 09:27:40 · 1020 阅读 · 0 评论 -
Java设计模式之解释器模式:从基础到高级的全面解析
解释器模式是一种行为型设计模式,用于定义语言的语法规则并提供解释执行功能。该模式通过抽象表达式接口(Expression)统一解释操作,具体分为终结符表达式(如NumberExpression)处理基本元素,非终结符表达式(如AddExpression)组合其他表达式完成复杂解释。实现时需构建语法树结构,通过递归解释方式计算结果。文中以简单加减法解释器为例,展示了从表达式解析到解释执行的全过程,体现了如何将语言规则转换为可执行的对象结构。该模式适用于需要解释特定语法规则的场景,如计算表达式、正则表达式等。原创 2025-06-03 09:28:26 · 615 阅读 · 0 评论 -
Java设计模式之访问者模式:从基础到高级的全面解析
访问者模式是一种将数据结构与操作分离的行为型设计模式。它通过在抽象访问者中定义访问方法,允许在不修改元素类的情况下扩展新操作。主要角色包括抽象访问者、具体访问者、抽象元素、具体元素和对象结构。该模式的优点是符合单一职责原则、扩展性好,但缺点是增加新元素类困难且可能破坏封装性。典型应用场景如商品价格计算,通过访问者实现不同价格策略而不改变商品类本身。原创 2025-06-05 12:36:45 · 962 阅读 · 0 评论 -
Java设计模式之命令模式:从基础到高级的全面解析
命令模式是一种行为型设计模式,它将请求封装为独立对象,使不同请求、队列或日志操作成为可能。摘要如下: 核心思想 通过将请求封装成命令对象,解耦请求发送者与执行者,支持参数化、队列化和撤销操作。 关键角色 命令接口(声明执行/撤销方法) 具体命令(绑定接收者与操作) 接收者(实际执行操作) 调用者(触发命令) 客户端(组装对象关系) 典型实现 以智能家居为例: 定义Light作为接收者 创建LightOn/OffCommand具体命令 RemoteControl作为调用者 支持多命令扩展和撤销操作 优势特点原创 2025-06-05 12:38:24 · 325 阅读 · 0 评论