Java设计模式<迭代器模式>

Java设计模式<迭代器模式>

意图

  • 提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示

场景

  • 遍历一个聚合对象

优点

  • 访问一个聚合对象的内容而无须暴露它的内部表示
  • 需要为聚合对象提供多种遍历方式
  • 为遍历不同的聚合结构提供一个统一的接口

代码

定义迭代接口

public interface Iterator<E> {

    public boolean hasNext();

    public E next();
}

定义容器接口


public interface Container<E> {

    public Iterator getIterator();
}

定义容器实现类

public class FruitList<E extends Container> implements Container {

    public String names[] = {"apple" , "orange" ,"banner" , "pineapple"};

    public Iterator getIterator() {
        return new NameIterator<E>();
    }

    private class NameIterator<E> implements Iterator {

        int index;

        public boolean hasNext() {
            if(index < names.length){
                return true;
            }
            return false;
        }

        public Object next() {
            if(this.hasNext()){
                return names[index++];
            }
            return null;
        }
    }
}


测试类DemoMain

public class DemoMain {

    public static void main(String[] args) {
        FruitList fruitList = new FruitList();
        for (Iterator iter = fruitList.getIterator();iter.hasNext(); ) {
            String name = (String) iter.next();
            System.err.println(name);
        }
    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 场景问题# 1.1 工资表数据的整合## 考虑这样一个实际应用:整合工资表数据。 这个项目的背景是这样的,项目...
    七寸知架构阅读 2,577评论 0 53
  • Java设计模式之迭代器模式 迭代器模式是我们程序中经常出现经常用到的一种设计模式,很多小伙伴没有注意过,那么这期...
    icyage阅读 419评论 0 0
  • 目录 本文的结构如下: 引言 什么是迭代器模式 模式的结构 典型代码 代码示例 优点和缺点 适用环境 模式应用 一...
    w1992wishes阅读 529评论 0 1
  • 今天的吟诵课,我做了一些调整,将新学诗的要求有所降低,由吟诵为重点,变为诵读能背诵为重点,而吟诵只要能有部分学生能...
    童心居士海阔天空阅读 396评论 0 0
  • 白乐随笔 香至清时花淡雅, 心臻静处我从容。 研成柳永一池墨, 笼得薛涛两袖风。 意喜瑞妻携鹤子, 情欣菊苑效陶翁...
    白乐随心阅读 239评论 2 1