设计模式-迭代器模式

参考网站

http://www.runoob.com/design-pattern/factory-pattern.html

什么是迭代器模式?

迭代器模式是Java和.Net编程环境中非常常用的设计模式。这种模式用户顺序访问集合对象的元素,而不需要知道集合对象的底层便是。

迭代器模式属于行为型模式

迭代器模式支持以不同的方式遍历一个聚合对象。简化了聚合类。在同一个聚合上可以有多个遍历。在迭代器模式中,增加新的聚合类和迭代器类都很方便无需修改原有代码。

下面的这个例子,就是对一块面包进行装饰。面包大同小异,但是它有不同的口味,如美式面包,法式面包等等。就是通过在同一块普通面包的基础上进行装饰,因为口味不同,有的加的东西又不一样。但是通过装饰器模式就能很好地解决这种问题。

步骤

创建接口.

Iterator.java 迭代器接口

public interface Iterator {
    boolean hasNext();
    Object next();
}

Container.java 不同类别接口

public interface Container {
    public Iterator getIterator();
}

创建实现了Container接口的实体类。该类有实现了Iterator接口的内部类NameIterator。

NameRepositiory.java 类别实现

public class NameRepository implements Container {

    public String names[] = { "Robert", "John", "Julie", "Lora" };

    @Override
    public Iterator getIterator() {
        // TODO Auto-generated method stub
        return new NameIterator();
    }

    // 内部类实现
    private class NameIterator implements Iterator {
        int index;

        @Override
        public boolean hasNext() {
            return index < names.length;
        }

        @Override
        public Object next() {
            return this.hasNext() ? names[index++] : null;
        }

    }

}

使用NameRepository来获取迭代器,并打印名字。

Client.java 客户端

public class Client {

    public static void main(String[] args) {
        NameRepository nameRepository = new NameRepository();
        for (Iterator iter = nameRepository.getIterator(); iter.hasNext();) {
            String name = (String) iter.next();
            System.out.println("Name:" + name);
        }
    }

}

输出验证。

Name : Robert
Name : John
Name : Julie
Name : Lora
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 目录 本文的结构如下: 引言 什么是迭代器模式 模式的结构 典型代码 代码示例 优点和缺点 适用环境 模式应用 一...
    w1992wishes阅读 3,561评论 0 1
  • 前言 Android的设计模式系列文章介绍,欢迎关注,持续更新中: Android的设计模式-设计模式的六大原则一...
    四月葡萄阅读 9,047评论 0 4
  • 介绍 迭代器模式在我们日常编程中使用非常频繁,像list、map、数组等都会用到迭代器模式。迭代器模式属于行为型模...
    东西的南北阅读 1,751评论 0 1
  • 1.迭代器模式的定义及使用场景定义:迭代器模式又称游标模式,是行为型设计模式之一。其源于对容器的访问,比较java...
    GB_speak阅读 3,262评论 0 0
  • 刘歆,地道的江苏人,她说,要去北京了,去了结那一段姻缘。 刘歆的大学是在北京读的,大学四年,她和那个男人在一起了三...
    何寻何寻阅读 1,661评论 0 0

友情链接更多精彩内容