欢迎来到天天文库
浏览记录
ID:15478909
大小:59.00 KB
页数:3页
时间:2018-08-03
《java设计模式-迭代子模式的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.类图: 2.原理: 3.特征: 抽象迭代子(Iterator)角色:此抽象角色定义出遍历元素所需的接口。 具体迭代子(ConcreteIterator)角色:此角色实现了接口,并保持迭代过程中的游标位置。 聚集(Aggregate)角色:此抽象角色给出创建迭代子对象的接口。 具体聚集(ConcreteAggregate)角色:实现了创建迭代子对象的接口,返回一个合适的具体迭代子实例。 客户端(Client)角色:持有对聚集及其迭代子对象的引用,调用迭代子对象的迭代接口,也有
2、可能通过迭代子操作聚集元素的增加和删除。4.说明: 迭代子模式将迭代逻辑封装到一个独立的迭代子对象中,从而与聚集本身分割开,它是对遍历的抽象化。 5.使用案例:6.代码://聚集(Aggregate)角色Aggregate.javapublicinterfaceAggregate{ /** *工厂方法,返回一个迭代子对象。 *@returnIterator */ publicIteratorcreateIterator();}抽象迭代子(Iterator)角色Iterator.javapublicinterfaceItera
3、tor{ publicvoidfirst(); publicvoidnext(); publicbooleanhasMore(); publicObjectcurrentItem();}//具体迭代子(ConcreteIterator)角色 ConcreteIterator.javapublicclassConcreteIteratorimplementsIterator{ privateConcreteAggregateaggregate; privateintindex; privateintsize; publi
4、cConcreteIterator(ConcreteAggregateaggregate) { this.aggregate=aggregate; index=0; size=aggregate.getSize(); } publicvoidfirst() { index=0; } publicvoidnext() { if(index5、 return(index>=size); } publicObjectcurrentItem() { returnaggregate.getElement(index); }}//具体聚集(ConcreteAggregate)角色ConcreteAggregate.javapublicclassConcreteAggregateimplementsAggregate{ privateObject[]obj=newObject[]{"a","b","c","d"}; publicIteratorc6、reateIterator() { returnnewConcreteIterator(this); } publicObjectgetElement(intindex) { if(index
5、 return(index>=size); } publicObjectcurrentItem() { returnaggregate.getElement(index); }}//具体聚集(ConcreteAggregate)角色ConcreteAggregate.javapublicclassConcreteAggregateimplementsAggregate{ privateObject[]obj=newObject[]{"a","b","c","d"}; publicIteratorc
6、reateIterator() { returnnewConcreteIterator(this); } publicObjectgetElement(intindex) { if(index
此文档下载收益归作者所有