OOP 设计模式 专栏导览

专栏定位

本专栏聚焦 面向对象设计原则与 23 种经典设计模式——但绝不是教科书式的 UML 图堆砌和脱离实际的玩具代码。每一个设计模式都要回答三个核心问题:它解决了什么问题?不用它会怎样?在真实的 Java 生态(JDK 源码、Spring、Netty、Mybatis)中它是怎么被使用的?

设计模式的价值不在于”背诵 23 种模式的定义”,而在于建立一种思维方式——面对复杂的软件设计问题时,能够识别出问题的结构,选择合适的抽象方式来管理复杂度。本专栏从 SOLID 五大原则出发,按创建型、结构型、行为型三大类逐一剖析每个模式的本质动机、实现变体和在工业级代码中的真实应用。

目标读者

  • 希望从”能写代码”进阶到”写出可维护、可扩展代码”的中级工程师
  • 阅读 Spring/Netty/JDK 源码时经常遇到设计模式但理解不深的开发者
  • 准备系统性提升面向对象设计能力的技术负责人

专栏目录

序号标题核心内容
0101 SOLID 原则——面向对象设计的五大基石单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)——每个原则的定义、违反时的代码坏味道、遵守时的设计效果、在 Spring/JDK 中的体现
0202 创建型模式(上)——单例、工厂方法与抽象工厂单例模式的五种实现(饿汉/懒汉/DCL/静态内部类/枚举)与各自的线程安全分析、工厂方法的多态创建(Collection.iterator)、抽象工厂的产品族概念(JDBC 的 Connection/Statement/ResultSet)、Spring BeanFactory 的工厂模式应用
0303 创建型模式(下)——建造者与原型模式建造者模式解决的”伸缩构造器”问题、链式 API 设计(StringBuilder/Lombok @Builder/Protobuf Builder)、原型模式的浅拷贝 vs 深拷贝(Cloneable 的陷阱)、Spring 的 prototype scope Bean
0404 结构型模式(上)——代理、适配器与装饰器代理模式的三种变体(静态代理/JDK 动态代理/CGLIB)、Spring AOP 的代理选择逻辑、适配器模式的接口转换(InputStreamReader/HandlerAdapter)、装饰器模式的功能增强(Java IO 流体系/Collections.synchronizedList)、代理 vs 装饰器的本质区别
0505 结构型模式(下)——外观、桥接、组合与享元外观模式的子系统封装(SLF4J 日志门面/Spring JdbcTemplate)、桥接模式的抽象与实现分离(JDBC Driver 体系)、组合模式的树形结构(Mybatis SqlNode/Spring CompositeHealthIndicator)、享元模式的对象复用(Integer 缓存池/String 常量池/线程池)
0606 行为型模式(上)——策略、模板方法与观察者策略模式的算法替换(Comparator/Spring Resource/线程池拒绝策略)、模板方法的骨架固定(AbstractApplicationContext.refresh/JdbcTemplate.execute)、观察者模式的事件通知(Spring ApplicationEvent/JDK Observable)
0707 行为型模式(中)——责任链、命令与迭代器责任链模式的请求传递(Netty ChannelPipeline/Servlet Filter/Mybatis Plugin)、命令模式的请求封装(Runnable/Callable/JdbcTemplate 的 Statement 回调)、迭代器模式的统一遍历(Iterator 接口/Stream 的内部迭代)
0808 行为型模式(下)——状态、中介者、备忘录与访问者状态模式的状态驱动行为(订单状态机/Thread 的六种状态)、中介者模式的通信集中(MVC 中的 Controller/消息队列)、备忘录模式的状态快照(事务回滚/编辑器撤销)、访问者模式的双分派(ASM 字节码操作/编译器语法树遍历)
0909 设计模式在 Spring 中的应用全景Spring 中超过 15 种设计模式的系统梳理——工厂(BeanFactory)、单例(Bean 默认作用域)、代理(AOP)、模板方法(JdbcTemplate/RestTemplate)、观察者(ApplicationEvent)、策略(HandlerMapping)、适配器(HandlerAdapter)、装饰器(BeanWrapper)、责任链(HandlerInterceptor)、建造者(BeanDefinitionBuilder)
1010 设计模式在 JDK 源码中的应用全景JDK 中设计模式的经典应用——迭代器(Iterator)、工厂方法(Collection.iterator)、装饰器(IO 流)、适配器(InputStreamReader)、策略(Comparator)、模板方法(AbstractList/AbstractMap)、享元(Integer/String 缓存)、代理(Proxy/InvocationHandler)、命令(Runnable/Callable)、原型(Cloneable)

推荐阅读路径

基础路径:01 → 02 → 03 → 04 → 06

进阶路径:05 → 07 → 08

实战应用路径:09 → 10(建议在阅读 Spring/JDK 源码后回看)

前置知识

  • Java 基础语法、接口与继承、泛型
  • 建议与 Spring CoreNettyMyBatis 专栏交叉阅读——设计模式的价值在实际框架中才能真正体会

关联专栏

  • Spring Core:IoC 容器(工厂模式)、AOP(代理模式)、事件机制(观察者模式)
  • Netty:Pipeline(责任链模式)、EventLoop(反应器模式)、ByteBuf 池化(享元模式)
  • MyBatis:Mapper 代理(代理模式)、SqlSession(模板方法模式)