面向对象
创建型
- 单例 Singleton
- 原型 Prototype
- 生成器/建造者 Builder
- 工厂方法 Factory Method
- 抽象工厂 Abstract Factory
结构型
- 组合 Composite
- 代理 Proxy
- 装饰 Decorator
- 外观 Facade
- 适配器 Adapter
- 享元 Flyweight
- 桥接 Bridge
行为型
- 模板方法 Template Method
- 策略 Strategy
- 责任链 Chain of Responsibility
- 迭代器 Iterator
- 命令 Command
- 观察者 Observer
- 状态 State
- 中介者 Mediator
- 访问者 Visitor
- 备忘录 Memento
- 解释器 Interpreter
参考:GoF 23、refactoringguru-常用设计模式目录
并发编程
- 不变模式 Immutable
- Copy-on-Write 模式
- 线程本地存储模式(ThreadLocal)
- Guarded Suspension 模式
- Balking 模式
- Thread-Per-Message 模式
- Worker Thread 模式
- 生产者 - 消费者模式(线程池)
- 两阶段终止模式
参考:《图解Java多线程设计模式》
I/O
- TPR(Thread per Request) 模式
- Reactor 模式
- Proactor 模式
缓存
- Cache Aside 更新模式
- Read/Write Through 更新模式
- Write Behind Caching 更新模式
容错设计模式
- 断路器模式
- 舱壁隔离模式
- 重试模式
参考:37 | 要实现某种容错策略,我们该怎么做?-周志明的软件架构课-极客时间
限流设计模式
- 流量计数器模式
- 滑动时间窗模式
- 漏桶模式
- 令牌桶模式