您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java设计模式——迭代器模式

小志的博客 发布时间:2021-01-11 22:24:57 ,浏览量:0

目录
    • 一、迭代器模式的定义与类型
    • 二、迭代器模式的适用场景
    • 三、迭代器模式的优点
    • 四、迭代器模式的缺点
    • 五、迭代器模式的相关设计模式
    • 六、迭代器模式示例
    • 七、迭代器模式在JDK源码中的应用

一、迭代器模式的定义与类型

1、定义

  • 提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示

2、类型

  • 行为型
二、迭代器模式的适用场景
  • 访问一个集合对象的内容而无需暴露它的内部表示
  • 为遍历不同的集合结构提供一个统一的接口
三、迭代器模式的优点
  • 分离了集合对象的遍历行为
四、迭代器模式的缺点
  • 类的个数成对增加
五、迭代器模式的相关设计模式
  • 迭代器模式和访问者模式
六、迭代器模式示例

以课程为例进行代码演示

1、代码结构如下: 在这里插入图片描述

2、创建一个课程实体类

package com.rf.designPatterns.behavioral.iterator;

/**
 * @description: 创建一个课程实体类
 * @author: xz
 */
public class Course {

    private String name;//课程名称

    //构造方法
    public Course(String name) {
        this.name = name;
    }

    //getter方法
    public String getName() {
        return name;
    }
}

3、创建课程迭代器接口类

package com.rf.designPatterns.behavioral.iterator;

/**
 * 课程迭代器接口类
 */
public interface CourseIterator {
    //获取下一个课程
    Course nextCourse();
    //判断是否是最后一门课程
    boolean isLastCourse();
}

4、创建课程迭代器实现类

package com.rf.designPatterns.behavioral.iterator;

import java.util.List;

/**
 * @description: 课程迭代器实现类
 * @author: xz
 */
public class CourseIteratorImpl implements CourseIterator{

    private List courseList;//课程集合
    private int position;//课程位置
    private Course course;//课程

    //构造方法
    public CourseIteratorImpl(List courseList) {
        this.courseList = courseList;
    }


    //重写获取下一个课程方法
    @Override
    public Course nextCourse() {
        System.out.println("返回课程的位置是:"+position);
        course= (Course) courseList.get(position);
        position++;
        return course;
    }

    //重写是否是最后一个课程方法
    @Override
    public boolean isLastCourse() {
        if(position             
关注
打赏
1661269038
查看更多评论
0.1114s