2020/12/26 OOP 共 579 字,约 2 分钟 设计模式
创建型
- 单例 Singleton: 饿汉式(预先加载), 懒汉式(用到再加载), 双重校验锁
- 工厂 Factory:统一方法创建对象,有工厂方法(子类创建)、抽象工厂(创建家族)、简单工厂(单独一个工具类创建)
- 生成器 Buildere: 类似 string builder
- 原型 ProtoType:.copy()方法, 深拷贝
行为型
- 责任链 Responsibility Chain: 类似中间件 middleware, 挨个处理,可提前返回
- 命令 Command:swing 的 action,有回调
- 解释器 Interpreter: 比如 formater, 有词法分析
- 迭代器 Iterator: 遍历
- 中介者 Mediator: 集中通知和控制
- 备忘录 Memento:拷贝一份 Origin
- 观察者 Observer: 回调更新
- 状态 State:状态机
- 策略 Strategy: 内置几种算法,可以选择,比如 filter
- 模板方法 Template Method: 新子类自定义实现某函数,比如 sort
结构型
- 适配器 Adapter: 比如 Array 的 asList
- 桥接 Bridge: 将抽象与实现分离开来
- 组合 Composite: 整体/部分
- 装饰 Decorator: 给类动态添加功能
- 外观 Facade: 统一接口来访问子系统
- 享元 FlyWeight: 利用共享的方式来支持大量细粒度的对象
- 代理 Proxy: 控制其他对象的访问
Reference