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

买房子最好的网站wordpress高度还原设计稿

买房子最好的网站,wordpress高度还原设计稿,老会计手把手教做帐官方网站,京东购物网站怎么做🚀简介 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口…

🚀简介

提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。

迭代器模式主要包含以下角色:

  1. 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。
  2. 具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例。
  3. 抽象迭代器(Iterator)角色:定义访问和遍历聚合元素的接口,通常包含 hasNext()next() 等方法。
  4. 具体迭代器(Concretelterator)角色:实现抽象迭代器接口中所定义的方法,完成对聚合对象的遍历,记录遍历的当前位置。

🚀案例

🐤抽象迭代器(Iterator)角色

//定义迭代器接口
public interface IIterator
{bool HasNext();object Next();
}

🐤抽象聚合(Aggregate)角色

//定义集合接口
public interface IAggregate
{IIterator GetIterator();
}

🐤具体聚合(ConcreteAggregate)角色

在这个类中,有一个私有的只读的List<string>类型的字段_items,用于存储字符串类型的数据。

GetIterator()方法返回一个IIterator类型的迭代器,这个迭代器是用于遍历_items中的数据。

Count属性返回_items中的元素数量。

索引器this[int index]用于获取或设置_items中指定索引位置的元素。

public class ConcreteAggregate : IAggregate
{private readonly List<string> _items = new List<string>();public IIterator GetIterator(){return new ConcreteIterator(this);}public int Count{get { return _items.Count; }}public string this[int index]{get { return _items[index]; }set { _items.Insert(index, value); }}
}

🐤具体迭代器(Concretelterator)角色

  • _aggregate是一个ConcreteAggregate类型的私有只读字段,它表示要遍历的聚合对象。
  • _current是一个私有字段,表示当前遍历到的位置。
  • ConcreteIterator(ConcreteAggregate aggregate)是一个构造函数,用于创建ConcreteIterator对象。这个构造函数需要一个ConcreteAggregate对象作为参数,但是这段代码中并没有显示这个构造函数的实现。
  • HasNext()方法用于判断是否还有下一个元素。如果当前位置_current小于聚合对象的元素数量,那么就返回true,表示还有下一个元素;否则返回false
  • Next()方法用于获取下一个元素。它返回当前位置_current的元素,并将_current加1,以便下次调用Next()时能返回下一个元素。
public class ConcreteIterator : IIterator
{private readonly ConcreteAggregate _aggregate;private int _current = 0;public ConcreteIterator(ConcreteAggregate aggregate){this._aggregate = aggregate;}public bool HasNext(){return _current < _aggregate.Count;}public object Next(){return _aggregate[_current++];}
}

🐳测试类

    public static void Main(string[] args){ConcreteAggregate a = new ConcreteAggregate();a[0] = "Item A";a[1] = "Item B";a[2] = "Item C";a[3] = "Item D";IIterator i = a.GetIterator();while (i.HasNext()){Console.WriteLine(i.Next());}}

👻运行结果!

🚀优缺点

优点:
  1. 它支持以不同的方式遍历一个聚合对象,在同一个聚合对象上可以定义多种遍历方式。在迭代器模式中只需要用一个不同的迭代器来替换原有迭代器即可改变遍历算法,我们也可以自己定义迭代器 的子类以支持新的遍历方式。
  2. 迭代器简化了聚合类。由于引入了迭代器,在原有的聚合对象中不需要再自行提供数据遍历等方法,这样可以简化聚合类的设计。
  3. 在迭代器模式中,由于引入了抽象层,增加新的聚合类和迭代器类都很方便,无须修改原有代码,满足开闭原则的要求。
缺点:
  1. 增加了类的个数,这在一定程度上增加了系统的复杂性。
使用场景
  1. 当需要为聚合对象提供多种遍历方式时。
  2. 当需要为遍历不同的聚合结构提供一个统一的接口时。
  3. 当访问一个聚合对象的内容而无须暴露其内部细节的表示时。
http://www.yayakq.cn/news/505406/

相关文章:

  • 婚介 东莞网站建设上海建筑设计工作室
  • 南昌定制网站开发网页代理地址
  • 什么叫门户网站做网站色弱可以吗
  • 中山本地网站建设推广企业直播吧在线直播
  • 外贸网站建设厦门天津有哪些互联网公司
  • 宁波快速建站公司贵州省房屋和城市建设厅官方网站
  • 营销型集团网站济南微信网站制作
  • 上虞做网站公司wordpress自适应主题
  • 安徽工业大学两学一做网站windows优化大师好不好
  • 网站的竞争对手百度seo排名优化系统
  • 营销型网站建设的特色响应式网页设计技巧
  • 兰州网站设计教程wordpress替换主题
  • 如何制作自己的公司网站电力网站建设方案
  • 全国旅游景点网站开源云南微网站建设的公司有哪些
  • 天津宁河区建设网站关于吃喝玩乐的网站建设策划
  • 千博企业网站管理系统旗舰版wordpress 新主题
  • 贵州省建设部网站全球设计风向
  • 网站收录量做网站容易挣钱吗
  • 线上购物网站开发新浪微博图床wordpress
  • 百度网站推广外包国外手机网站源码
  • 同学录网站建设南岗哈尔滨网站建设
  • 简单的网站后台管理系统网站架设的结构
  • 有经验的企业网站建设360网站收录提交
  • 如何做多语言网站携创网中国工商注册网年审
  • 网站怎么做站内美化cms免费开源
  • 可信赖的深圳网站建设产品目录网站模板
  • 网站制作费会计分录怎么做深圳网站建设案
  • 建设商务网站ppt四川省住房和城乡建设厅官网查证
  • wordpress页面响应慢前后端济南seo关键词优化方案
  • 查看网站的外链网站流量太大打不开怎么办