Iterator 迭代器 行为模式

Iterator 迭代器 行为模式,提供一种顺序访问一个聚合对象中的各个元素的方法,而又不破坏该聚合对象的内部表示。

 

别名游标,这个模式,在Composite模式的例子一时实际上已经用到了,而且在Flex中的也是有的。比如,Flex中有个类叫ArrayColllection有一个方法叫createCursor():IViewCursor。Iterator模式还是比较好理解的。

 


迭代器模式由一下几种组成元素:

    迭代器接口:用于对几何数据进行迭代的接口

    具体迭代器

    集合接口

    具体集合

 

 

下面来看一下代码:

 

 

IIterator.as

package {
    public interface IIterator {
        function reset();
        function next();
        function hasNext():Boolean;
    }
}

 

   来看一个具体的迭代器

 

ArrayIterator.as

package {
    public class ArrayIterator implements IIterator {
        private var collection:Array;
        private var index = 0;
        public function ArrayIterator(collection:Array) {
            this.collection = collection;
        }
        
        public function hasNext():Boolean {
            return index < collection.length;
        }
        
        public function next():Object {
            return collection[index++];
        }
        
        public function reset():void {
            index = 0;
        }
    }
}

 

   有种特殊的迭代器,叫Null迭代器,使用Null迭代器可以创建一个和接口紧密相连、但不用包含任何集合数据的类。如下定义:

 

 

 

NullIterator.as

package {
    public class NullIterator implements IIterator {
        public function NullIterator() {
        
        }
        
        public function hasNext():Boolean {
            return false;
        }
        
        public function next():Object {
            return null;
        }
        
        public function reset():void {}
    }
}
 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值