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

    迭代器模式

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

    Iterator

    package com.hml.iterator;
    
    public interface Iterator {
    
        public Object first();
        
        public Object next();
        
        public boolean hasNext();
        
        public Object curItem();
        
        public void add(Object o);
    }

    Aggregate

    package com.hml.iterator;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public  class Aggregate implements Iterator {
    
        private List<Object> items = new ArrayList<Object>();
        private int count = 0;
        public Object first() {
            return items.get(0);
        }
    
        public Object next() {
            return items.get(++count);
        }
    
        public boolean hasNext() {
            return count < items.size();
        }
    
        public Object curItem() {
            return items.get(count);
        }
    
        public void add(Object o) {
            items.add(o);
        }
    }

    Test

    package com.hml.iterator;
    
    public class Test {
        public static void main(String[] args) {
            Aggregate a = new Aggregate();
            a.add(1);
            a.add(2);
            a.add(3);
            
            System.out.println(a.curItem());
            System.out.println(a.next());
            System.out.println(a.first());
            System.out.println(a.hasNext());
        }
    }

    类图

    当需要对聚合对象进行遍历时,可以考虑使用迭代器模式。

  • 相关阅读:
    DataGridView 密码列(显示为*号)的设置
    有關界面化學的一些有趣現象
    电商网站需要ICP证吗
    JS 未结束的字符串常量
    Iframe自适应高度
    JS正则表达式
    界面活性劑的作用
    js转义字符
    解决dbo登录名为空的问题
    肌肤弹性胶原蛋白
  • 原文地址:https://www.cnblogs.com/heml/p/4649653.html
Copyright © 2011-2022 走看看