4.Java设计模式-->迭代器模式

来源:互联网 发布:软件测试实践报告 编辑:程序博客网 时间:2024/06/06 02:04

1.迭代器实例需要的方法

Iterator.javainterface Iterator{    boolean hitEnd();//使用偏移量判断是否到达对象底部    Object getContent();//取出当前元素,偏移量+1    }

2.需要进行迭代的对象实例需要提供的方法

List.javainterface List {    void add( Object obj);    Object get( int index);    int getSize();    Iterator getIterator();//直接在这步填 this ?    }



3.根据需要迭代对象一定拥有的办法,构造具体的迭代器

ConcreteIterator.javapublic class ConcreteIterator{    private List list;    private int index;    public ConcreteIterator( List list){        super();        this.list = list;        }    @Override    public boolean hitEnd(){        if( index >= list.getSize() ){            return true;            }else{            return false;            }        }    @Override    public Object getContent(){        Object object = list.get( index);        index++;        return object;        }    }

4.构造具体的需要迭代对象

Aggregate.javapublic class Aggregate implements List{    private Object[] list;    private size = 0;    private index = 0;    public Aggregate(){        lists = new Object[100];//先在方法外声明引用类型变量,再在方法内部,用 new 关键字进行堆栈的连接.        size=0;        index=0;        }//初始化变量.    //依照超类规定必须实现的方法,依次填充    @Override    public Object get( int index){        return lists[ index];        }    @Override    public void add( Object obj){        list[size++]=obj;        }    @Override    public Iterator getIterator(){        return new ConcreteIterator( this);        }



5.测试

Test.javapublic class Test {    pubic static void main( String[] args){        List mList = new Aggregate();        mList.add(1);        mList.add("yi");        mList.add("one");        Iterator iter = mList.getIterator();        while( !iter.hitEnd ){            System.out.println( iter.getContent() );        }
原创粉丝点击