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

  • 相关阅读:
    FlashInspector 【Firefox浏览器插件,flash分析工具】
    屌丝和木耳
    Flash剪贴板功能
    sql newid()随机函数
    SQL 视图
    向SQL Server 现有表中添加新列并添加描述.
    sql server 约束 查找
    创建与删除SQL约束或字段约束
    SQLServer
    利用排序规则特点计算汉字笔划和取得拼音首字母
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10722705.html
Copyright © 2011-2022 走看看