美文网首页安卓开发使用锦集Android技术知识Android开发
每日Android源码设计模式之-13、迭代器模式

每日Android源码设计模式之-13、迭代器模式

作者: Alexey | 来源:发表于2017-03-31 09:23 被阅读56次

    其实很多语言已经实现了迭代器模式,无需我们去实现应用了,这里大家只要了解就好。


    Iterator Pattern迭代器模式,又叫做游标模式Cursor模式,源于用容器的访问,例如Java中的List,map,数组,Android中的的数据库查询cursor。在客户和容器之间插入一个第三者——迭代器,避免容器自身实现迭代,或者由客户实现迭代。


    定义:

    提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露这个对象的内部表示。


    类图:

    就是在容器ConcreteAggregate中有一个方法Iterator(),这个方法返回了一个迭代器,并且把存储数据的具体结构容器传入到Iterator中,然后我们拿到这个Iterator,里面有两个方法next和hasNext来获取每一个元素,或者判断是否有下一个元素。


    Android中的实现

    前面说了Android访问数据库时候获得的cursor就是一个迭代器。DBHelper.getReadableDatabase.query获得一个cursor,然后可以调用cursor.moveToFirst(),也可以调用moveToNext()来移动角标获得数据。


    总结:

    迭代器弱化了容器类和便利算法之间的关系。

    几乎每一种高级语言都内置了迭代器,所以我们只需要了解,不用自己实现了。

    相关文章

      网友评论

        本文标题:每日Android源码设计模式之-13、迭代器模式

        本文链接:https://www.haomeiwen.com/subject/ubpmottx.html