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

小白如何免费做网站网站seo哪家做的好

小白如何免费做网站,网站seo哪家做的好,网站建设金硕网络,陕西省门户网站建设政策目录 一、前言 二、迭代器模式 三、总结 一、前言 迭代器模式(Iterator Pattern)是一种行为型设计模式,提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。总的来说就是分离了集合对象的遍历行为,抽象出…

目录

一、前言

二、迭代器模式

三、总结


一、前言

        迭代器模式(Iterator Pattern)是一种行为型设计模式,提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。总的来说就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可以让外部代码透明地访问集合内部的数据。

        迭代器模式由以下角色组成:

Iterator(抽象迭代器):

定义了遍历聚合对象所需的方法,包括hashNext()和next()方法等,用于遍历聚合对象中的元素

Concrete Iterator(具体迭代器):

它是实现迭代器接口的具体实现类,负责具体的遍历逻辑。它保存了当前遍历的位置信息,并可以根据需要向前或向后遍历集合元素

Aggregate(抽象聚合器):

一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,List接口,Set接口等。

ConcreteAggregate(具体聚合器):

就是抽象容器的具体实现类,比如List接口的有序列表实现ArrayList,List接口的链表实现LinkList,Set接口的哈希列表的实现HashSet等。

        整个迭代器模式的结构图:

二、迭代器模式

        迭代器实际上在现有的语言中基本都有实现,比如java里面的foreach,如果使用到了foreach,查看.class文件,可以发现编译后的实际是使用Iterator进行的迭代遍历:

        这里就简单模拟List<String>的迭代器。

        首先创建类Iterator:

public interface Iterator<T> {T next();boolean hasNext();
}

        具体的实现类ConcreteIterator:

public class ConcreteIterator<T> implements Iterator{private List<T> aggregate;private int index;public ConcreteIterator(List<T> aggregate) {this.aggregate = aggregate;}@Overridepublic T next() {return aggregate.get(index++);}@Overridepublic boolean hasNext() {return index < aggregate.size() ? true : false;}
}

        再创建Aggregate类:

public interface Aggregate<T> {void add(T str);Iterator<T> getIterator();
}

        具体的实现ConcreteAggregate类:

public class ConcreteAggregate<T> implements Aggregate{private List<T> aggregate;public ConcreteAggregate() {this.aggregate = new ArrayList<>();}@Overridepublic void add(Object item) {this.aggregate.add((T) item);}@Overridepublic Iterator<T> 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.hengruixuexiao.com/news/16770.html

相关文章:

  • 网站的开发流程分哪几步深圳优化公司义高粱seo
  • 网站如何做服务器授权模板网站哪个好
  • 百度免费建个人网站明年2024年有疫情吗
  • 网站建设和管理百度做网站需要多少钱
  • 网站建设风险管理计划书百度推广找谁
  • 深圳html5网站开发网络培训网站
  • 全球速卖通下载济南seo官网优化
  • wordpress插件sshseo代码优化有哪些方法
  • 上海简站商贸有限公司百度搜索排名怎么做
  • wordpress本地环境转移郑州seo优化公司
  • 品牌建设与品牌推广seo标签优化方法
  • 四川网站营销seo什么价格现在百度推广有用吗
  • 河南新站关键词排名优化外包百度竞价优化排名
  • 大城网站建设业务推广方式有哪些
  • 常用设计网站电脑网页制作
  • 旅游网站开发系统的er图买卖交易平台
  • 电商网站建设计划书南宁一站网网络技术有限公司
  • wordpress定制首页模板优化模型有哪些
  • 扬州市城市建设投资公司网站查排名的网站
  • 网站开发软件系统网站安全检测工具
  • 网站里弹窗怎么做网络营销的实现方式包括
  • 山西省网站建设哪里好2023年重大时政热点
  • 什么网站可以做装修效果图百度地址
  • 今天开始做女神免费网站太原seo关键词排名优化
  • wordpress主题ripro杭州关键词优化平台
  • php+网站开发案例教程网站优化软件哪个好
  • 网站 建站模式微信管理系统登录入口
  • 最新新闻热点事件2022年搜索引擎排名优化seo课后题
  • 内网网站如何建设方案2345网址大全下载到桌面
  • 如何做一个虚拟网站搜索引擎推广一般包括哪些