当前位置: 首页 > news >正文

电脑配件网站建设小广告设计

电脑配件网站建设,小广告设计,网站和系统哪个好做,互联网公司排名100强2021简介 迭代器设计模式(Iterator Design Pattern),也叫作游标设计模式(Cursor Design Pattern)。 迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责更加单一。 …

简介

迭代器设计模式(Iterator Design Pattern),也叫作游标设计模式(Cursor Design Pattern)。

迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责更加单一。

其定义是,提供一种方法来访问聚合对象,而不暴露这个对象的内部实现。

典型实现

首先,定义一个用于遍历聚合对象中所存储元素的抽象迭代器接口,其代码示例如下:

 
public interface Iterator {
// 将游标指向第一个元素
public void first();
// 将游标指向下一个元素
public void next();
// 判断是否存在下一个元素
public boolean hasNext();
// 获取游标指向的当前元素
public Object currentItem();
}

然后,我们通常将存储数据的类称作为聚合类,一般会在聚合类中创建迭代器对象,如下是抽象聚合接口的代码示例:

 
public interface Aggregate {
public Iterator creteIterator();
}

在具体迭代器类中,我们需要注入聚合对象,以便后续使用迭代器时能访问到其数据,其代码示例如下:

 
public class ConcreteIterator implements Iterator {
private Aggregate objects;
private Object cursor;
public ConcreteIterator(Aggregate objects) {
this.objects = objects;
}
// 将游标指向第一个元素
public void first() {}
// 将游标指向下一个元素
public void next() {}
// 判断是否存在下一个元素
public boolean hasNext() {}
// 获取游标指向的当前元素
public Object currentItem() {}
}

在具体聚合类中,通常是实现存储数据的逻辑,以及指定具体迭代器的对象,其代码示例如下:

 
public class ConcreteAggregate implements Aggregate {
public Iterator creteIterator() {
return new ConcreteIterator(this);
}
}

总结

优点

迭代器模式的主要优点如下:

  • 封装性良好,访问一个聚合对象的内容而无需暴露它的内部实现
  • 将遍历操作交给迭代器,简化了复杂聚合类的设计
  • 支持以不同的方式遍历聚合对象,在同一个聚合对象上可以定义多种遍历方式
  • 增加新的聚合类和迭代器类都很方便,满足开闭原则

缺点

迭代器模式的主要缺点如下:

  • 迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加
  • 抽象迭代器的设计难度较大,需要充分考虑系统将来的扩展

适用场景

迭代器模式的适用场景如下:

  • 访问一个聚合对象的内容而无需暴露它的内部实现
  • 需要为一个聚合对象提供多种遍历方式
  • 为遍历不同的聚合对象提供一个统一的接口

源码

在 Java 中,迭代器的应用非常广。

最顶层的 Collection 集合接口继承了 Iterable 接口,其实表明了所有的集合对象都是可迭代对象,并且都需要实现获取 Iterator 对象的方法。

将这个源码映射到典型实现中,Iterable 接口和 Collection 接口就是抽象聚合接口,Iterator 接口则是抽象迭代器接口。

http://www.fp688.cn/news/160239.html

相关文章:

  • 书怎么做pdf下载网站做好网络推广的技巧
  • 彩票的网站怎么做的国际重大新闻事件2023
  • 番禺建设网站策划搜索引擎的工作原理是什么
  • 自己做的网站怎么推广东莞网站推广大全
  • 网站电线电话图怎么做关键词快速排名平台
  • 网站建设推广优化招聘模板注册网站免费注册
  • 手机分销网站可视化网页制作工具
  • 大型电子商务网站开发百度图片识别搜索引擎
  • 怎么做冒牌网站站长工具站长之家官网
  • 公司网站模版百度付费问答平台
  • wordpress教程 mac sql广州排前三的seo公司
  • 策勒网站建设搜索引擎入口google
  • 如何做网站实名认证舆情分析网站
  • 让百度收录自己的网站全网推广方案
  • 做网站数据库要哪一种好百度广告投放代理商
  • 常州网站建设专业的公司优化游戏卡顿的软件
  • 网站服务类型是什么意思关键词自助优化
  • 四辩稿的套话模板东莞seo关键词排名优化排名
  • sns社交网站注册建站系统源码
  • 国外做游戏h动画的网站石家庄百度搜索引擎优化
  • 做团购网站的公司网站推广优化招聘
  • 无锡网站建设推广服务深圳网络推广服务是什么
  • 如何做公司网站运营竞价推广论坛
  • 冷门行业做网站的优势seo推广费用
  • 哪个网站做的系统好用吗搜索引擎优化指的是
  • html5 企业网站模板seo优化实训总结
  • 黑龙江省内新闻最新seo关键词排名优化价格
  • 西安行业网站黄冈黄页88网黄冈房产估价
  • 免备案网站制作做小程序公司哪家好
  • 网站建设制作设计营销公司杭州seo关键词优化推广外包