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

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


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


定义:

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


类图:


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


Android中的实现

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


总结:

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容