设计模式之迭代器模式的学习思考

来源:互联网 发布:ps软件字体下载 编辑:程序博客网 时间:2024/06/05 02:54

迭代器模式最经典的应用应该就是Java中的迭代器了,在Java集合Collection接口就继承了Iterable。

种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

迭代器模式属于设计模式里的行为模式。

优点:

  • 它支持以不同的方式遍历一个聚合对象。
  • 迭代器简化了聚合类。
  • 在同一个聚合上可以有多个遍历。

缺点:

  • 由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。

代码:

    //定义迭代接口interface Iterator{    public boolean hasNext();   //是否有下一个元素,即还有没有没有遍历到的元素    public Object next();       //返回元素}interface Container{            //获得迭代器    public Iterator getIterator();}class NameRepository implements Container{    public String names[]={"L","H","J"};    public Iterator getIterator() {        return new NameIterator();    }    private class NameIterator implements Iterator{        int index;      //指针,用来遍历集合对象        public boolean hasNext() {            if(index<names.length){                return true;            }            return false;        }        public Object next() {            if(this.hasNext()){                return names[index++];      //返回元素,并将指针后移一位            }            return null;        }    }}public class IteratorPatternDemo {    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:L    Name:H    Name:J
原创粉丝点击