设计模式 迭代器模式
基本概念
案例
定义迭代器接口和具体实现类
public interface StudentIterator {
public boolean hasNext();
public Student next();
}
public class StudentIteratorImpl implements StudentIterator{
private List list;
private int position = 0;
public StudentIteratorImpl(List 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 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);
}
}
总结