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

17.zwd一起做网站广州网站制作费用

17.zwd一起做网站,广州网站制作费用,文章存在 wordpress,用html制作个人网站源代码目录 一、前言 二、迭代器模式 三、总结 一、前言 迭代器模式(Iterator Pattern#xff09;是一种行为型设计模式#xff0c;提供一种方法顺序访问一个聚合对象中各个元素#xff0c;而又不暴露该对象的内部表示。总的来说就是分离了集合对象的遍历行为#xff0c;抽象出…目录 一、前言 二、迭代器模式 三、总结 一、前言 迭代器模式(Iterator Pattern是一种行为型设计模式提供一种方法顺序访问一个聚合对象中各个元素而又不暴露该对象的内部表示。总的来说就是分离了集合对象的遍历行为抽象出一个迭代器类来负责这样既可以做到不暴露集合的内部结构又可以让外部代码透明地访问集合内部的数据。 迭代器模式由以下角色组成 Iterator抽象迭代器 定义了遍历聚合对象所需的方法包括hashNext()和next()方法等用于遍历聚合对象中的元素 Concrete Iterator具体迭代器 它是实现迭代器接口的具体实现类负责具体的遍历逻辑。它保存了当前遍历的位置信息并可以根据需要向前或向后遍历集合元素 Aggregate抽象聚合器 一般是一个接口提供一个iterator()方法例如java中的Collection接口List接口Set接口等。 ConcreteAggregate具体聚合器 就是抽象容器的具体实现类比如List接口的有序列表实现ArrayListList接口的链表实现LinkListSet接口的哈希列表的实现HashSet等。 整个迭代器模式的结构图 二、迭代器模式 迭代器实际上在现有的语言中基本都有实现比如java里面的foreach如果使用到了foreach查看.class文件可以发现编译后的实际是使用Iterator进行的迭代遍历 这里就简单模拟ListString的迭代器。 首先创建类Iterator public interface IteratorT {T next();boolean hasNext(); }具体的实现类ConcreteIterator public class ConcreteIteratorT implements Iterator{private ListT aggregate;private int index;public ConcreteIterator(ListT aggregate) {this.aggregate aggregate;}Overridepublic T next() {return aggregate.get(index);}Overridepublic boolean hasNext() {return index aggregate.size() ? true : false;} }再创建Aggregate类 public interface AggregateT {void add(T str);IteratorT getIterator(); }具体的实现ConcreteAggregate类 public class ConcreteAggregateT implements Aggregate{private ListT aggregate;public ConcreteAggregate() {this.aggregate new ArrayList();}Overridepublic void add(Object item) {this.aggregate.add((T) item);}Overridepublic IteratorT getIterator() {return new ConcreteIterator(this.aggregate);} } 客户端调用 public class Client {public static void main(String[] args) {ConcreteAggregate aggregate new ConcreteAggregate();aggregate.add(1);aggregate.add(2);Iterator iterator aggregate.getIterator();while (iterator.hasNext()){Object s iterator.next();System.out.println(s);}} } 运行结果 三、总结 优点与缺点 优点 1、简化遍历迭代器模式提供了一种统一的方法来遍历各种聚合对象客户端代码不需要了解聚合对象的具体实现 2、解耦遍历算法和集合结构通过引入迭代器集合对象和遍历算法分离集合对象不需要实现遍历逻辑这提高了代码的模块化和复用性 3、多种遍历方式可以为同一个集合提供不同的迭代器实现多种遍历方式如正向遍历、反向遍历 4、一致接口所有的集合都可以提供相同的迭代器接口客户端可以以相同的方式遍历不同类型的集合提升了代码的灵活性和可维护性 5、并发支持某些迭代器可以支持并发遍历允许在多线程环境中安全地遍历集合 缺点 1、开销增加由于引入了迭代器对象会增加额外的类和对象从而增加了系统的复杂性和内存开销。 2、外部迭代器复杂性在某些情况下使用外部迭代器显式控制迭代过程会使代码变得复杂特别是在需要嵌套迭代或管理迭代状态时。 3、对变化敏感如果在迭代过程中集合结构发生变化如增删元素需要处理并发修改的问题可能会引入额外的同步机制和复杂性。 应用场景 1、遍历集合对象需要遍历不同类型的集合对象如数组、链表、树、图等时使用迭代器模式可以提供统一的遍历方式。 2、隐藏集合内部实现当不希望客户端了解或依赖集合对象的内部结构时可以使用迭代器模式隐藏内部实现细节。 3、多种遍历需求需要对同一集合对象进行多种不同方式的遍历时可以定义多个不同类型的迭代器来满足需求。 4、复杂聚合对象对于一些复杂的聚合对象如组合模式Composite Pattern中的树形结构迭代器模式可以提供一种简单的遍历方法。
http://www.pierceye.com/news/527333/

相关文章:

  • 网站运营的目的及意义pc网站怎么适配移动端
  • 网站深圳优化建设10月上海娱乐场所又要关门了
  • 怎么做网页文件打开别的网站河南省城乡和住房建设厅
  • 泰州公司做网站成都网页设计培训中心
  • 网站业务需求文档网站正在建设中 动态
  • 一级a做爰电影片免费网站姑苏区住房建设局网站
  • 宁夏建设教育协会网站医院网站跳出率高
  • 网站建设佰首选金手指二关于网站建设的职位
  • 网站建设公司商务网站项目书中堂东莞网站建设
  • 欧美品牌网站设计wordpress好用的文章编辑器
  • 长春网站建设q479185700強wordpress数学公式的代码
  • 郑州软件app开发公司嘉兴优化网站排名
  • 可以建微信网站的做网站的项目开发计划书
  • 湖北网站建设模板下载太原线上教学
  • 西宁网站建设开发公司开发网站监控工具
  • 外贸网站优势杭州百度快速排名提升
  • 制作个人网站论文ipage wordpress
  • 十堰建设网站首页优化大师免安装版
  • 深圳建设企业网站公司敬请期待素材
  • 网络营销网站建设课程wordpress 文章描述
  • 网站制作有什么好的介绍北京网站建设及推广招聘
  • 殡仪馆做网站的好处制作响应式网站报价
  • 网站建设平台杭州做网站前台后台是怎么连接的
  • 太原市0元网站建设wordpress wcps
  • 怎么自己做免费网站wordpress 优酷通用代码自适应
  • 网站设置三方交易深圳品牌设计公司招聘
  • 东莞响应式网站哪家好网站开发应用到的技术名词
  • 背景做网站公司docker wordpress
  • 吉林建设监理协会网站网站 服务器 虚拟主机
  • 食品公司网站设计项目和男朋友都是第一次做网站