-迭代器模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了-迭代器模式相关的知识,希望对你有一定的参考价值。

迭代器模式的定义:提供一种方法访问一个聚合对象中的各个对象。可以做到不关心对象的内部构造,也可以按顺序的访问每个原宿。

 

内部迭代器:外部只需要一次初始调用

 1 var each = function( ary, callback ){
 2     for (var i = 0; i < ary.length; i++) {
 3         callback.call( ary[i], i, ary[i] );
 4     };
 5 }
 6 
 7 // 只进行了这一次调用
 8 each( [ 1, 2, 3 ], function( i, n ){
 9     // 进行对数组的操作
10 });

 

外部迭代器:在外部必须进行显式的迭代

 1 // 外部迭代器的实现,具体的客户操作这里就不写了
 2 var iterator = function( ary ){
 3     var current = 0;
 4 
 5     var next = function(){
 6         current++;
 7     };
 8 
 9     var isDone = function(){
10         return current >= ary.length;
11     };
12 
13     var getCurrent = function(){
14         return ary[ current ];
15     };
16 
17     // 由于这里产生了闭包,所以返回的对象方法依然可以访问到ary
18     return {
19         next : next,
20         isDone : isDone,
21         getCurrent : getCurrent
22     }
23 }

 

中止迭代器:给回调器设置callback函数返回false时跳出循环

 

迭代器的应用举例:文件上传有多种方式的时候,如果避免使用条件选择语句来选择上传方式

解决方案大概为:

  • 将每个上传方式都写成一个函数,函数返回upload对象,同时如果是不兼容的上传方式的话就返回false
  • 将所有上传方式的函数作为一个数组进行迭代,直到迭代到某个上传方式是可以的
  • 使用这个上传方式函数返回的对象进行上传

以上是关于-迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式 行为型模式 -- 迭代器模式(定义结构实例优缺点分析)

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式-迭代器模式

迭代器模式

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式学习