Skip to content

23 种设计模式实战

用大白话和 Java 实战代码,把 GoF 的 23 种设计模式一个一个讲透。

本系列配套开源项目 design-patterns-23——一个基于 React 的设计模式交互式学习平台。每种模式都有可视化演示,推荐边读文章边动手玩

🎮 在线交互演示站:yeatsliao.github.io/design-patterns-23

这个系列是关于什么的?

设计模式的教程不少,但大多停留在教科书式的定义上,看完还是不知道该在什么时候用。这个系列换一种讲法:

  • 每种模式先用生活中的例子解释清楚它到底在解决什么问题;
  • 再给出一段不用该模式的**"烂代码"场景**,让你体会痛点在哪;
  • 然后用完整可运行的 Java 代码做实战演练;
  • 最后实事求是地分析优缺点与适用场景——什么时候该用,什么时候别用。

文章讲原理,演示站 管交互:每种模式在网站上都有一个用 React 实现的动态演示(比如模拟工厂生产产品、观察者收到通知),两边配合着看效果最好。

适合谁读

  • 学过 Java 语法、想进阶面向对象设计的开发者
  • 背过模式定义、但一写代码就不知道怎么落地的读者
  • 准备面试、需要快速过一遍 23 种模式的求职者

文章目录

创建型模式(第 1-5 篇)

关注对象怎么创建,把对象的创建和使用解耦。

篇章标题一句话点题
第 1 篇单例模式 (Singleton)只有我一个是真的
第 2 篇工厂方法模式 (Factory Method)各自为政的作坊
第 3 篇抽象工厂模式 (Abstract Factory)品牌全家桶
第 4 篇建造者模式 (Builder)乐高积木怎么搭
第 5 篇原型模式 (Prototype)影分身之术

结构型模式(第 6-12 篇)

关注类与对象怎么组合,搭出更灵活的结构。

篇章标题一句话点题
第 6 篇适配器模式 (Adapter)它是充当翻译官的
第 7 篇桥接模式 (Bridge)多维度变化的解耦利器
第 8 篇组合模式 (Composite)统一对待整体与部分
第 9 篇装饰器模式 (Decorator)动态赋予对象新功能
第 10 篇外观模式 (Facade)系统的总服务台
第 11 篇享元模式 (Flyweight)亿万对象的瘦身秘籍
第 12 篇代理模式 (Proxy)我是你的全能经纪人

行为型模式(第 13-23 篇)

关注对象之间怎么协作,让职责分配更合理。

篇章标题一句话点题
第 13 篇责任链模式 (Chain of Responsibility)踢皮球的高手
第 14 篇命令模式 (Command)运筹帷幄的将军
第 15 篇解释器模式 (Interpreter)语言的魔法师
第 16 篇迭代器模式 (Iterator)遍历元素的通用钥匙
第 17 篇中介者模式 (Mediator)拒绝乱连线的调度中心
第 18 篇备忘录模式 (Memento)游戏存档,随时回档
第 19 篇观察者模式 (Observer)这里的消息最灵通
第 20 篇状态模式 (State)拒绝 if-else 地狱
第 21 篇策略模式 (Strategy)条条大路通罗马
第 22 篇模板方法模式 (Template Method)照着流程办事
第 23 篇访问者模式 (Visitor)极其难懂但很强大

配套项目

资源地址
在线交互演示站yeatsliao.github.io/design-patterns-23
GitHub 仓库YeatsLiao/design-patterns-23
技术栈React 19 + TypeScript + Vite + Tailwind CSS + Framer Motion,支持中英双语

如果这个系列对你有帮助,欢迎给 design-patterns-23 点个 Star。