设计模式总结概述

参考专栏:设计模式

01设计模式-概述-CSDN博客

02设计模式-UML图-CSDN博客

03设计模式-软件设计原则-CSDN博客

04设计模式-创建者模式(单例、工厂、原型、建造者模式)_构建者,单例-CSDN博客

05设计模式-结构型模式(代理、适配器、装饰、桥接、外观、组合、享元模式)_适配器 桥接 装饰 代理-CSDN博客

06设计模式-行为型模式(模板方法、策略、命令、责任链)-CSDN博客

07设计模式-自定义Spring框架(解释器、_如何设计一个spring框架-CSDN博客

 一、创建型模式(Creational Patterns)

关注“对象创建”的过程,隐藏实例化逻辑,提高灵活性和可复用性。

设计模式 作用说明
Singleton(单例) 确保一个类只有一个实例,并提供全局访问点。常用于配置类、线程池等。
Factory Method(工厂方法) 定义一个创建对象的接口,让子类决定实例化哪一个类。
Abstract Factory(抽象工厂) 创建一组相关或相互依赖的对象。比如 GUI 跨平台组件创建。
Builder(建造者) 分步骤构建复杂对象,常用于创建复杂的对象如 StringBuilderLombok.Builder
Prototype(原型) 通过复制已有实例来创建新对象(浅拷贝或深拷贝)。用于性能优化。

设计模式总结概述_第1张图片 

二、结构型模式(Structural Patterns) 

关注“类或对象的组合”,解决类与类之间的耦合关系。

设计模式 作用说明
Adapter(适配器) 将一个类的接口转换为客户端期望的另一个接口(如旧系统兼容新接口)。
Bridge(桥接) 分离抽象和实现,使它们可以独立变化。典型如 JDBC 驱动桥接。
Composite(组合) 将对象组合成树形结构,表示“部分-整体”的层次结构(如菜单结构)。
Decorator(装饰器) 动态添加额外功能,不影响原类结构。用于增强,如 Java I/O 流。
Facade(外观) 提供统一接口,隐藏系统复杂性。简化外部调用。
Flyweight(享元) 共享对象,减少内存开销。典型如 String 常量池。
Proxy(代理) 控制对对象的访问,常用于安全、缓存、远程调用(如 Spring AOP)。

三、行为型模式(Behavioral Patterns) 

关注“对象间的通信和职责分配”。

设计模式 作用说明
Strategy(策略) 定义一系列算法,互相可以替换(如排序策略、支付方式切换)。
Template Method(模板方法) 定义算法骨架,将部分逻辑推迟到子类实现。
Observer(观察者) 一对多通知机制,典型如事件监听、订阅发布。
Command(命令) 将请求封装为对象,便于参数化、撤销重做等操作。
Chain of Responsibility(责任链) 多个处理器链式处理请求,如 Spring 的 Filter、拦截器。
State(状态) 根据状态切换行为,如状态机。
Iterator(迭代器) 顺序访问集合元素而不暴露内部结构。
Mediator(中介者) 减少对象之间的直接通信,统一协调。
Memento(备忘录) 保存对象状态以便恢复(如撤销功能)。
Visitor(访问者) 在不改变数据结构的前提下定义新操作。
Interpreter(解释器) 用于语法解析,如正则、DSL、表达式解析器。

四、设计模式使用建议

方面 建议
实际项目中常用 单例、工厂、策略、模板、装饰器、代理、观察者、责任链
面试高频 单例、工厂、策略、观察者、责任链、装饰器、模板方法
和 Spring 常见结合 AOP 是代理模式,事务是责任链,IOC 也是策略和模板结合
不常用但重要 解释器、访问者(适用于编译器/复杂表达式领域)

 Java 的设计模式本质上是解决“可维护性、扩展性、灵活性”的通用套路,是代码的结构智慧,掌握它们能大幅提升你设计系统和解决问题的能力。

你可能感兴趣的:(设计模式,设计模式,java,开发语言)