设计模式总览
温馨提示:
本文最后更新于 2023年02月02日,已超过 615 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
设计模式
创建型模式
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
- 增加选择工厂的维度
- 涉及到产品族
单例模式(Singleton Pattern)
- 饿汉模式
- 两次检查+volatile
- 嵌套类(静态内部类)
- 用枚举来实现
建造者模式(Builder Pattern)
- 使用lombak的@Builder,提供链式写法
原型模式(Prototype Pattern)
- 浅克隆
- 深克隆
结构型模式
代理模式(Proxy Pattern)
特点
- 隐藏具体实现
- 做方法包装、增强
实现
- JDK动态代理
- CGLIB动态代理
适配器模式(Adapter Pattern)
默认适配器模式(Default Adapter)
- 对不感兴趣的接口提供空实现
对象适配器模式
将A对象适配、伪装为B对象
- 组合模式
类适配器模式
继承A类并实现B的接口
- 继承
桥梁模式(Bridge Pattern)
- 调用者和被调用者都可以改变
装饰器模式(Decorator Pattern)
- 增加小功能,示例如JAVA IO
门面(外观)模式(Facade Pattern)
- 将功能组合后提供友好的API,示例如SLF4J
组合模式(Composite Pattern)
- 表示具有层次结构的数据
享元模式(Flyweight Pattern)
对象的共享与重用,如线程池、连接池等
- 单纯享元模式
- 复合享元模式
行为型模式
模版方法模式(Template Pattern)
- 模版定义算法骨架,将步骤留给子类实现
策略模式(Strategy Pattern)
- 调用者不变,变的只是被调用的方法
命令模式(Command Pattern)
- 将请求的责任和执行请求的责任分开
观察者模式(Observer Pattern)
- 单机,使用Guava中的EventBus
- 消息中间件,如kafka、RabbitMQ
责任链模式(Chain of Responsibility Pattern)
- 可自由组合责任角色,如流程审批
状态模式(State Pattern)
- 一个对象在其内部状态发生改变时,改变其行为能力
迭代器模式(Iterator Pattern)
- 不暴露集合对象的内部表示,提供一种方法顺序访问集合元素
访问者模式(Visitor Pattern)
- 为一个集合中的每个元素提供多种访问方式
备忘录模式(Memento Pattern)
- 获取并保存一个对象的内部状态,以便以后恢复它
解释器模式(Interpreter Pattern)
中介者模式(Mediator Pattern)
正文到此结束
- 本文标签: 设计模式
- 本文链接: https://www.v8en.com/article/320
- 版权声明: 本文由SIMON原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权