• Design Pattern:迭代器模式


    迭代器模式

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

    可以用同一种方法来遍历

    image-20200620230048149

    例子

    // 如果是arraylist之类的,内置的就有了
    public class PancakeHouseMenu implements Menu{
        Arraylist<MenuItem> items;
        
        @Override
        public Iterator createIterator(){
            return items.iterator(); // 用java内置的方法就完事了
        }
    }
    
    // 如果是数组,就比较麻烦,要自己写了
    public class DinerMenu implements Menu {
       public MenuItem[] list;
     
       @Override
       public Iterator getIterator() {
          return new NameIterator();
       }
     
       private class DinerMenuIterator implements Iterator {
     
          int index;
     
          @Override
          public boolean hasNext() {
             if(index < list.length){
                return true;
             }
             return false;
          }
     
          @Override
          public Object next() {
             if(this.hasNext()){
                return list[index++];
             }
             return null;
          }     
           
           //remove方法...略
       }
    }
    
    
  • 相关阅读:
    Hash表解题之大数据查找
    数据结构与算法之字典树解题
    oracle存储过程学习
    mq常见问题
    通过反射构造对象
    平衡二叉树
    LinkList源码
    ArrayList源码
    JVM参数调优
    MyBatis源码图
  • 原文地址:https://www.cnblogs.com/cpaulyz/p/13173298.html
Copyright © 2020-2023  润新知