迭代器模式-- JavaScript设计模式与开发实践

59 阅读1分钟

定义

迭代器模式指提供一种方式,无需了解内部构造的情况下,按顺序访问其中每个元素。可以把迭代的过程从业务逻辑中分离出来。

内部迭代器和外部迭代器

  • 内部迭代器:内部封装好规则,一次调用后,完成所有迭代内容。
  • 外部迭代器:必须显示地控制请求迭代下一个元素。

迭代对象

可以为(类)数组Array和对象Object

实战例子

比如获取不同浏览器的上传组件。

首先获取IE上传组件,然后是Flash组件,发现Flash未安装又要使用基本的表单上传。这样的表达充斥着try catch和大量的if else条件判断。如果后续支持HTML5的新功能又要增加复杂度。此时就可以使用迭代器模式进行优化。

将获取不同的组件封装成对应的函数,如果失败就return false。使用迭代器进行遍及各个函数。最终返回返回值value不为false的对象。这样即使增加新的函数只需要将其加入到迭代对象中也就是参数arguments中就可以了。

image.png