AI编程社区 分分钟搞定迭代器模式(Iterator)

分分钟搞定迭代器模式(Iterator)

迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节.简单说,迭代器装进容器,就成为了迭代器模式,这就涉及到4个角色:1.迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。...

        迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节.

        简单说,迭代器装进容器,就成为了迭代器模式,这就涉及到4个角色:

       1. 迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。
       2.具体迭代器角色(Concrete Iterator):具体迭代器角色要实现迭代器接口,并要记录遍历中的当前位置。

       3. 容器角色(Container):容器角色负责提供创建具体迭代器角色的接口。

       4.具体容器角色(Concrete Container):具体容器角色实现创建具体迭代器角色的接口——这个具体迭代器角色于该容器的结构相关。

        如下图:

        

public interface IContainer {
Iterator createrIterator();
}

 

        这里只看两个抽象类来理解迭代器模式:

    抽象迭代器

public interface Iterator {
String next();
boolean haveNext();
}

    抽象容器

public interface IContainer {
Iterator createrIterator();
}

    在各自的实现中:抽象迭代器的实现需要容器的成员变量,作为构造参数传入实现类中

        抽象容器的实现需要实例化具体迭代器.

        这样就能直接通过容器来遍历迭代器

 

本文来自:http://blog.csdn.net/lilu_leo/article/details/7609496,写的很不错,推荐之

 

 

转载于:https://blog.51cto.com/fawor/1368991

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐

  • 浏览量 65
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献1条内容