readme

Java面向对象程序设计-迭代器Iterator

需求分析

我们在之前的项目中实现了StudentCenter类;该类提供了getAllCourses()方法,用于读取所有的课程信息。该方法的原型如下所示。

public Course[] getAllCourses();

在本项目中,我们将使用迭代器模式改进这个接口。在改进后,该接口应返回一个java.util.Iterator<Course>对象,分离外部的使用场景和内部实现。

在获取Iterator对象之后,可以使用该Iterator对象遍历所有的Course对象。

public Iterator<Course> getCourseIterator();

因此,我们需要在com.littlewaterdrop.util包中新建一个类CourseIterator,并实现了Iterator<Course>接口。其原型如下所示。

package com.littlewaterdrop.util;

import java.util.Iterator;
import com.littlewaterdrop.bean.Course;

public class CourseIterator implements Iterator<Course> {
    // ...
}

在CourseIterator类中需要实现Iterator<Course>接口的hasNext()和next()方法。在实现之后,我们可以按照如下方式使用getCourseIterator()方法,遍历所有的课程信息。

import java.util.Iterator;
import com.littlewaterdrop.registration.StudentCenter;
import com.littlewaterdrop.bean.Course;

public class Project {
    public static void main(String[] args) {
        Iterator<Course> allCourses = StudentCenter.getInstance().getCourseIterator();

        while (allCourses.hasNext()) {
            System.out.println(allCourses.next());
        }
    }
}

参考文档

  1. Java编程语言的基本概念
  2. 设计模式
  3. Maven工程管理工具
Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.