zoukankan      html  css  js  c++  java
  • 设计模式-迭代器模式

    迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。
    迭代器模式属于行为型模式。
    主要解决:不同的方式来遍历整个整合对象。
    JAVA应用:
    java.util.Iterator
    org.apache.ibatis.cursor.defaults.DefaultCursor
    public class Course {
        private String name;
    
        public Course(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
    }
    public interface CourseIterator {
        Course nextCourse();
        boolean isLastCourse();
    
    }
    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< courseList.size()){
                return false;
            }
            return true;
        }
    }
    public interface CourseAggregate {
    
        void addCourse(Course course);
        void removeCourse(Course course);
    
        CourseIterator getCourseIterator();
    
    
    
    }
    public class CourseAggregateImpl implements CourseAggregate {
    
        private List courseList;
    
        public CourseAggregateImpl() {
            this.courseList = new ArrayList();
        }
    
        @Override
        public void addCourse(Course course) {
            courseList.add(course);
        }
    
        @Override
        public void removeCourse(Course course) {
            courseList.remove(course);
        }
    
        @Override
        public CourseIterator getCourseIterator() {
            return new CourseIteratorImpl(courseList);
        }
    }
  • 相关阅读:
    Win32 键盘事件
    好用的Markdown 编辑器及工具
    如何激发您孩子的学习动力和兴趣
    横扫芯片后,紫光欲进军公有云 数百亿资金已到位(大事表)
    C#更改控制台文本颜色
    I/O多路复用
    Python 安装 httpie
    Elasticsearch 5.0
    认证架构
    注册微信小程序
  • 原文地址:https://www.cnblogs.com/woodpecker-z/p/14658259.html
Copyright © 2011-2022 走看看