zoukankan      html  css  js  c++  java
  • 迭代器模式

    1.迭代器模式

    迭代器模式(Iterator Pattern)用于顺序访问集合对象的元素,不需要知道集合对象的底层表示,属于行为型模式。

    把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码为定义迭代器的接口:hasNext, next。

    2.试验Demo

    interface Iterator {
        public boolean hasNext();
        public Object next();
    }
    
    class NameIterator implements Iterator {
        private int index;
        private String array[];
    
        public NameIterator(String[] array) {
            this.array = array;
        }
    
        public boolean hasNext() {
            if (index < array.length) { //length是个成员变量,不加()
                return true;
            } else {
                return false;
            }
        }
    
        public Object next() {
            if(hasNext()) {
                return array[index++];
            } else {
                return null;
            }
        }
    }
    
    
    interface Container {
        public Iterator getIterator();
    }
    
    
    class NamePropersity implements Container {
        private String array[];
    
        public NamePropersity(String array[]) { //通过构造函数将Propersity和Iterator关联起来
            this.array = array;
        }
    
        public Iterator getIterator() {
            return new NameIterator(array);
        }
    }
    
    
    public class IteratorPatternDemo {
        public static void main(String args[]) {
            String names[] = {"AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH"};
            Container container = new NamePropersity(names);
    
            /*面向对象编程就不只是从参数传参了,可以直接是某个对象进行调用*/
            for (Iterator iterator = container.getIterator(); iterator.hasNext();) {
                System.out.println("name: " + iterator.next());
            }
        }
    }

    参考:http://www.runoob.com/design-pattern/iterator-pattern.html

  • 相关阅读:
    iOS 语录
    接口的理解
    android中src和background区别
    onItemClick 参数解释
    工作空间项目不存在,eclipse中项目删不掉
    [转载] IIS来搭建一个只能实现基本功能的FTP服务器
    [转]C# FTP操作类
    [转] VS2017 打包安装程序
    笔记本睿频的关闭与开启 [转载]
    C# 线程:定时器的使用
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10722705.html
Copyright © 2011-2022 走看看