摘要: 迭代器模式 要解决的问题 迭代器要解决的问题很简单很单纯,就是进行遍历操作。 实现原理 基本所有语言都实现了迭代器,javascript也不例外,如 ,`for..of.. for..in.. for` 迭代器的种类分两种,内部迭代器,外部迭代器。 内部迭代器 内部迭代器的迭代过程对外部是不可控的, 阅读全文
posted @ 2016-11-09 17:46 Xinyu520 阅读(595) 评论(0) 推荐(0)
摘要: 代理模式 解决哪一类问题 从字面意思上理解,代理模式解决对一个对象的直接访问,这种直接访问可能是"不方便"的,所谓"不方便"可能是直接访问成本比较大(在前端领域通常是要获取后台数据或者执行复杂的计算),或者需要对原始对象进行一些修饰或处理。 实现原理 实现一个代理对象,这个代理对象和原对象对外暴露相 阅读全文
posted @ 2016-11-08 20:51 Xinyu520 阅读(264) 评论(0) 推荐(0)
摘要: 策略模式 要解决的问题 当解决一个问题有多种方法时,选择使用哪种方法时就少不了要用大量的if语句进行判断,如果将这些方法的实现和判断语句放在一起实现就会产生问题, 比如增加一种的新的方法时,就不得不再去写一条if语句,这不符合开闭原则,也不方便复用,因此策略模式主要解决的是 算法的实现 和 算法的使 阅读全文
posted @ 2016-11-07 14:49 Xinyu520 阅读(213) 评论(0) 推荐(0)
摘要: 单例模式 解决的问题 保证实例只有一个,避免多个实现,从全局来看,这个实例的状态是唯一的。 实现原理 设置一个变量来记录实例,通过检测该变量是否为空来决定是否创建实例 非透明单例 所谓非透明就是用户在使用前必须知道这是一个单例类,不使用new来获取实例 透明单例 其优点是创建实例时对用户透明,虽然多 阅读全文
posted @ 2016-11-06 23:27 Xinyu520 阅读(219) 评论(0) 推荐(0)