欢迎来到天天文库
浏览记录
ID:19763783
大小:40.43 KB
页数:6页
时间:2018-10-06
《设计模式之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
此文档下载收益归作者所有