设计模式-行为篇(迭代器模式)

迭代器模式:

又叫做游标(Cursor)模式。
提供一种方法访问一个容器(container)对象中的各个元素,而又不暴露该对象的内部细节。

/**
 * Created by malei on 2016/12/6.
 */
public class MyList<T> implements Collect<T>{

    private List list = new ArrayList();

    @Override
    public void add(T obj) {
        list.add(obj);
    }

    @Override
    public void remove(T obj) {
        list.remove(obj);
    }

    @Override
    public Iterator iterator() {
        return new MyIterator(list);
    }

    public static void main(String[] args){
        Collect<String> list = new MyList<>();
        list.add("小米1");
        list.add("小米2");
        list.add("小米3");

        Iterator it = list.iterator();
        while (it.hasNext()){
            Log.show((String)it.next());
        }
    }
}

/**
 * Created by malei on 2016/12/6.
 * 集合的接口规范
 */
public interface Collect<T> {
    void add(T obj);
    void remove(T obj);
    Iterator iterator();
}

/**
 * Created by malei on 2016/12/6.
 */
public class MyIterator<T> implements Iterator{

    private List<T> list = new ArrayList();
    private int cursor = 0;

    public  MyIterator(List<T> list){
        this.list = list;
    }

    @Override
    public T next() {
        T obj = null;
        if(this.hasNext()){
            obj = this.list.get(cursor++);
        }
        return obj;
    }

    @Override
    public boolean hasNext() {
        if(cursor == list.size()){
            return false;
        }
        return true;
    }
}

/**
 * Created by malei on 2016/12/6.
 * 迭代器接口
 */
public interface Iterator <T>{
    T next();
    boolean hasNext();
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 场景问题# 1.1 工资表数据的整合## 考虑这样一个实际应用:整合工资表数据。 这个项目的背景是这样的,项目...
    七寸知架构阅读 7,351评论 0 53
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 9,390评论 1 15
  • 定义 迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序的访问一个聚集中的元素而不必暴露...
    步积阅读 6,752评论 0 1
  • 写于2017年5月21日,女儿生日前一天 宝贝,明天就是你二十三岁生日了,远隔重洋爸爸不能当面祝你生日快乐,就给你...
    微行天下阅读 3,165评论 3 9
  • 书中闻墨香, 说者满铿锵。 听者喜而泣, 亦或满悲伤。
    拂识阅读 1,364评论 0 0

友情链接更多精彩内容