设计模式总结
Contents
设计模式
设计模式 | 描述 | 例子 |
---|---|---|
单例模式 | 一个类只能构造出唯一实例 | vuex |
工厂模式 | 对创建对象逻辑的封装 | new 创建实例 |
观察者模式 | 当一个对象被修改时,自动通知所有依赖它的对象 | Object.defineProperty() |
发布-订阅模式 | 结合观察者和中介者模式,当发布者发布时,会有调度中心执行订阅者的订阅事件 | vue 的双向绑定 |
装饰器模式 | 对类的包装,动态扩展类的功能 | js 的装饰器, koa2 的洋葱模型(中间件) |
适配器模式 | 兼容新旧接口,对类的包装 | 多态 |
外观模式 | 隐藏系统内部逻辑,对外提供可以访问系统的接口 | 封装 |
策略模式 | 根据不同的场景,执行对应的操作 | 重载 |
代理模式 | 为一个对象提供一个代用品或占位符,以便控制对它的访问 | Proxy、HTML元 素事件代理 |
迭代模式 | 提供一种方法遍历一个聚合对象中各个元素 | 链表 |
中介者模式 | 处理同级对象之间的双向交互 | 聊天室, 聊天室里面的人之间并不能直接对话,而是通过聊天室这一媒介进行转发。 |
访问者模式 | 能够在不改变一个对象结构的前提下能够给对象增加新的逻辑,新增的逻辑保存在一个独立的访问者对象中。 | 1.对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。 |