设计模式之iterator - 迭代模式

设计模式之iterator - 迭代模式

ID:19763783

大小:40.43 KB

页数:6页

时间:2018-10-06

设计模式之iterator - 迭代模式_第1页
设计模式之iterator - 迭代模式_第2页
设计模式之iterator - 迭代模式_第3页
设计模式之iterator - 迭代模式_第4页
设计模式之iterator - 迭代模式_第5页
资源描述:

《设计模式之iterator - 迭代模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、设计模式之Iterator-迭代模式2009-02-1409:52Iterator模式也叫迭代模式,是由GoF提出的23种设计模式的一种。Iterator模式是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。本文介绍设计模式中的迭代(Iterator)模式的概念,用法,以及实际应用中怎么样使用迭代模式进行开发。Iterator模式的概念Iterator模式指对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访

2、问的设计模式。在程序设计中,经常有这种情况,需要从大量得数据(对象)集合中一个个地取出数据加以处理。Iterator模式就是为了有效地处理按顺序进行遍历访问的一种设计模式,简单地说,Iterator模式提供一种有效的方法,可以屏蔽聚集对象集合的容器类的实现细节,而能对容器内包含的对象元素按顺序进行有效的遍历访问。所以,Iterator模式的应用场景可以归纳为满足以下几个条件:-访问容器中包含的内部对象-按顺序访问为什么需要Iterator模式在应用Iterator模式之前,首先应该明白Iterator模式用来解

3、决什么问题。或者说,如果不使用Iterator模式,会存在什么问题。我们举例来说明Iterator模式到底好在哪。比如有一个Book类,一个管理Book的容器类BookList:viewplaincopytoclipboardprint?1.publicclassBook{  2.    ...  3.}  4.  5.publicclassBookList{  6.    //保存Book对象数据  7.    privateListbookList=newArrayList();  8.  9.    //

4、添加Book对象至BookList容器  10.    publicvoidaddBook(Bookbook){  11.        ...  12.    }  13.  14.    //从BookList容器删除Book对象  15.    publicvoiddeleteBook(Bookbook){  16.        ...  17.    }  18.  19.    //其他方法  1.    ...  2.}  publicclassBook{    ...}publicclassBo

5、okList{    //保存Book对象数据    privateListbookList=newArrayList();    //添加Book对象至BookList容器    publicvoidaddBook(Bookbook){        ...    }    //从BookList容器删除Book对象    publicvoiddeleteBook(Bookbook){        ...    }    //其他方法    ...}我们需要按顺序遍历访问BookList包含的Book对象。

6、怎么实现顺序遍历方法呢?你可能会考虑以下这些遍历方法:方法1,由容器自己实现顺序遍历。直接在BookList里直接添加顺序遍历方法:viewplaincopytoclipboardprint?1.publicclassBookList{  2.    privateintindex;  3.    ...  4.    //得到当前Book  5.    publicBookgetCurrentBook(){  6.        ...  7.        Bookbook=(Book)bookList.g

7、et(index);  8.        ...  9.        returnbook;  10.    }  11.  12.    //是否存在下一个Book  13.    publicbooleanhasNext(){  14.        ...  15.    }  16.}  publicclassBookList{    privateintindex;    ...    //得到当前Book    publicBookgetCurrentBook(){        ...    

8、    Bookbook=(Book)bookList.get(index);        ...        returnbook;    }    //是否存在下一个Book    publicbooleanhasNext(){        ...    }}使用时,可能的使用方法是:viewplaincopytoclipboardprint?1.BookListbookLi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。