行为型模式 --- 迭代器模式

2020-09-05  本文已影响0人  十二找十三
package study.org;

import java.util.ArrayList;
import java.util.List;

public class Demo {
    
    public static void main(String[] args) {
        Aggregate aggregate = new ConcreteAggregate();
        aggregate.add("aaa");
        aggregate.add("bbb");
        aggregate.add("ccc");
        
        Iterator iterator = aggregate.getIterator();
        while (iterator.hashNext()) {
            Object value = iterator.next();
            System.out.println(value);
        }
    }
    
}
//抽象迭代器
interface Iterator {
    Object next();

    boolean hashNext();
}

class ConcreteIterator implements Iterator {

    private List<String> list = null;
    private int index = -1;

    public ConcreteIterator(List<String> list2) {
        this.list = list2;
    }

    @Override
    public Object next() {
        Object object = null;
        if (this.hashNext()) {
            object = list.get(++index);
        }
        return object;
    }

    @Override
    public boolean hashNext() {
        if (index < list.size() - 1) {
            return true;
        } else {
            return false;
        }
    }

}

//抽象聚合类
interface Aggregate {
    void add(String object);

    void remove(String object);

    Iterator getIterator();
}

class ConcreteAggregate implements Aggregate {
    private List<String> list = new ArrayList<String>();

    @Override
    public void add(String object) {
        list.add(object);
    }

    @Override
    public void remove(String object) {
        list.remove(object);
    }

    @Override
    public Iterator getIterator() {
        return new ConcreteIterator(list);
    }

}

上一篇下一篇

猜你喜欢

热点阅读