
设计模式
文章平均质量分 86
秋名RG
学习,实践,总结,分享
展开
-
深入理解享元模式:用Java实现高效对象共享
享元模式是一种结构型设计模式,通过对象共享减少内存占用。它将对象状态分为内部状态(共享)和外部状态(非共享),适用于海量相似对象的场景(如游戏粒子、文档字体)。核心实现包括享元接口、具体享元类和工厂缓存机制,通过复用对象显著提升性能(测试显示10万次操作内存减少99.9%)。该模式以空间换时间,需注意线程安全和状态分离,在Java标准库如Integer.valueOf()中已有应用。适用于对象数量导致性能瓶颈时,但需避免过度设计。原创 2025-06-01 18:49:49 · 918 阅读 · 0 评论 -
深入理解外观模式(Facade Pattern):用Java代码实现复杂系统的简化调用
外观模式是一种结构型设计模式,它通过定义一个高层接口,将多个子系统的复杂功能调用封装成一个简单操作。客户端无需直接与子系统交互,而是通过外观类间接调用,从而降低系统的耦合度[7][9]。外观模式通过封装与简化,体现了“最少知识原则”(Law of Demeter),是应对复杂系统调用的优雅解决方案。它不仅能提升代码可维护性,还能让团队协作更高效——例如后端提供统一接口,前端无需关心实现细节[3][12]在实际开发中,建议优先为高频复杂操作设计外观类,但需警惕过度封装导致的“上帝对象”问题。原创 2025-05-31 18:34:03 · 917 阅读 · 0 评论 -
深入理解Java装饰器模式:动态扩展对象功能的优雅之道
装饰器模式是一种结构型设计模式,通过动态包装对象的方式扩展功能,避免继承带来的子类爆炸问题。它由抽象组件、具体组件、抽象装饰器和具体装饰器四个核心角色组成,能在运行时灵活组合功能(如Java IO流、GUI组件美化)。该模式完美遵循开闭原则,实现职责分离,但需注意避免装饰层次过深和接口污染。相比适配器模式,装饰器不改变接口;相比策略模式,它侧重功能叠加而非算法替换。最佳实践包括优先使用组合、保持接口纯净和控制装饰层数。原创 2025-05-26 20:21:22 · 984 阅读 · 0 评论 -
深入解析Java组合模式:构建灵活树形结构的艺术
摘要:组合模式通过树形结构组织对象,统一处理整体与部分的关系。核心思想是让客户端可以一致地处理单个对象和组合对象,支持递归组合形成复杂结构。模式包含抽象构件、叶子构件和容器构件三种角色,分为透明式与安全式两种实现方式。典型应用包括文件系统、UI组件等层次结构场景。该模式简化了客户端代码,但可能增加系统复杂度。关键在于识别适合使用组合模式的层次结构场景,并在透明性与安全性之间做出权衡选择。原创 2025-05-25 12:43:31 · 698 阅读 · 0 评论 -
深入理解桥接模式:解耦抽象与实现的设计艺术
桥接模式通过分离抽象与实现,解决多维度变化导致的“类爆炸”问题。传统继承方式在面对遥控器与设备类型扩展时,类数量呈指数级增长,维护成本高。桥接模式的核心思想是将抽象层(如遥控器功能)与实现层(如设备操作)解耦,使两者可以独立演化。通过组合而非继承,系统能灵活扩展新功能或设备类型,避免了类爆炸。具体实现中,抽象层(遥控器)持有实现层(设备)的引用,并通过具体子类扩展功能。这种设计不仅降低了代码耦合,还提高了系统的可扩展性与维护性。原创 2025-05-17 12:04:27 · 752 阅读 · 0 评论 -
深入理解Java适配器模式:从接口兼容到设计哲学
适配器模式是一种结构型设计模式,旨在解决接口不兼容的问题,使原本无法直接协作的类能够协同工作。其核心思想是通过转换接口定义,将现有类的接口转换为客户端期望的接口。适配器模式有两种主要实现方式:类适配器和对象适配器。类适配器通过继承实现,适合需要重写适配者方法的场景,但灵活性较低;对象适配器通过组合实现,支持多适配者,灵活性和扩展性更强。适配器模式广泛应用于新旧系统接口兼容、第三方库接口适配以及Java标准库中的字节流到字符流转换等场景。通过适配器模式,开发者可以在不修改现有代码的情况下实现接口的兼容,提升代原创 2025-05-14 22:30:34 · 1060 阅读 · 0 评论 -
深入理解设计模式之原型模式(Prototype Pattern)
原型模式通过克隆已有对象来创建新实例,适用于对象初始化资源消耗大、需要创建相似对象或简化创建过程的场景。相比直接创建,原型模式能避免重复初始化、动态获取对象状态并实现创建与使用的解耦。模式结构包括抽象原型、具体原型和客户端,通过克隆方法实现对象复制。深拷贝与浅拷贝的区别在于是否完全独立复制对象,深拷贝适用于复杂对象结构。Java中可通过手动克隆、序列化或JSON实现深拷贝。原型模式在游戏开发、配置对象复用等场景中广泛应用,性能测试显示克隆方式比直接创建更高效。最佳实践包括使用对象注册表、结合其他设计模式,并原创 2025-05-11 16:44:13 · 668 阅读 · 0 评论 -
深入解析建造者模式(Builder Pattern)——以Java实现复杂对象构建的艺术
建造者模式(Builder Pattern)属于创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。(《设计模式:可复用面向对象软件的基础》)✅ 提高对象创建的安全性✅ 增强代码可读性和可维护性✅ 支持参数组合的灵活扩展✅ 强制实施不可变性原则适用性判断标准:当对象的构造函数参数超过4个,且部分参数可选,存在验证必要性的时候,就应该考虑使用建造者模式。原创 2025-05-08 20:24:54 · 1029 阅读 · 0 评论 -
面向对象设计的七大原则(附带例子)
一个类应该只负责一项职责,即一个类应该只有一个引起它变化的原因。原创 2024-02-12 21:34:32 · 1085 阅读 · 0 评论 -
建造者模式:构建复杂对象的艺术
建造者模式是一种非常实用的设计模式,它允许我们以一种灵活且易于管理的方式构建复杂对象。通过将构建过程封装在单独的构建类中,我们可以确保构建过程的清晰性和正确性,同时还可以避免客户端代码与复杂对象构建逻辑的紧密耦合。在软件开发中,当需要处理具有多个属性和复杂构建顺序的对象时,建造者模式通常是一个很好的选择。原创 2024-02-19 14:45:14 · 335 阅读 · 0 评论 -
快速掌握工厂模式
在软件工程中,工厂模式是一种创建型设计模式,用于处理对象的创建过程。它提供了一种将对象创建与其实现分离的方法,使得客户端代码不需要知道具体的类,只需要与工厂接口交互即可。这种模式在复杂的对象创建过程中尤其有用,例如在需要根据不同条件创建不同类型的对象时。原创 2024-02-18 10:37:03 · 912 阅读 · 0 评论 -
单例模式的5种实现方式,最后一种最推荐
单例模式有多种实现方式,选择哪种方式取决于你的具体需求。如果你希望在程序启动时就创建实例,可以选择饿汉式;如果你希望在需要时才创建实例,可以选择懒汉式、静态内部类或枚举。在多线程环境下,需要注意线程安全问题。希望本文能帮助你更好地理解和使用单例模式。原创 2024-02-18 09:58:39 · 3715 阅读 · 0 评论 -
设计模式分类(23种设计模式,3大分类)
在软件开发的世界里,设计模式是一种被广泛认可的解决方案,用于解决在特定上下文中反复出现的软件设计问题。它们是一套经过优化并被证明有效的设计经验,可以帮助开发者编写出更加清晰、灵活和可重用的代码。原创 2024-02-13 10:38:52 · 665 阅读 · 0 评论