设计模式 迭代器模式

基本概念

案例


定义迭代器接口和具体实现类

public interface StudentIterator {
    public boolean hasNext();
    public Student next();
}
public class StudentIteratorImpl implements StudentIterator{
    private List<Student> list;
    private int position = 0;

    public StudentIteratorImpl(List<Student> list) {
        this.list = list;
    }

    @Override
    public boolean hasNext() {
        return position < list.size();
    }

    @Override
    public Student next() {
        Student currentStudent = list.get(position);
        position++;
        return currentStudent;
    }
}

定义容器接口和具体实现类

public interface StudentAggregate {
    public void addStudent(Student student);

    public void removeStudent(Student student);

    StudentIterator getStudentIterator();
}
public class StudentAggregateImpl implements StudentAggregate{

    private List<Student> list = new ArrayList<>();

    @Override
    public void addStudent(Student student) {
        this.list.add(student);
    }

    @Override
    public void removeStudent(Student student) {
        this.list.remove(student);
    }

    @Override
    public StudentIterator getStudentIterator() {
        return new StudentIteratorImpl(list);
    }
}

总结


posted @ 2021-11-22 19:45  一个经常掉线的人  阅读(25)  评论(0)    收藏  举报