随笔分类 - 设计模式
摘要:观察者模式 分为观察者与目标,观察者 → 订阅目标,目标 → 触发事件,目标里维护了一套观察者列表。观察者与目标之间形成了松耦合。 // 观察者 class Observer { constructor() {} update() {} } // 观察者列表 class ObserverList {
阅读全文
摘要:适配 思想:将数据适配指定格式。 let arr = [{ path: '' }]; function b(params, fn) { params.forEach(item => { fn(item.url); }); } // 数据适配 let adaptArr = arr.map(item =
阅读全文
摘要:享元 思想:抽出不同的部分。 // 源代码 function a(paramsm, fn) { let arr1 = []; let arr2 = []; if (params) { arr1.forEach(fn); } else { arr2.forEach(fn); } } // 享元模式 f
阅读全文
摘要:工厂模式 思想:用于批量创建相似对象 或 完成相似功能。 class A {} function factory() { return new A(); } 建造者 思想:将复杂功能模块拆分,再组合起来。 class Editor { this.text = new Text(); this.img
阅读全文
摘要:设计原则 开闭原则:扩展开放,修改关闭 单一职责:一个函数只做一件事; 依赖倒置:依赖抽象,而不是具体; 接口隔离:类似单一职责,只不过是针对接口; 迪米特法则:一个对象应该减少与其它对象发生作用; 里氏替换:子类可以完全替代父类(子类必须完全实现父类方法) 分类 创建型:工厂模式、单例模式、建造者
阅读全文