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

怎么做公司的中英文网站网站建设设计公司类网站织梦模板(带手机端)

怎么做公司的中英文网站,网站建设设计公司类网站织梦模板(带手机端),小程序开发定制公司北京,怎么阻止网站一、简介 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。 在通过迭代器来遍历集合元素的同时,增加或者删除集合中的元素,有可能会导致某个元素被重复遍历或遍…

一、简介

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

在通过迭代器来遍历集合元素的同时,增加或者删除集合中的元素,有可能会导致某个元素被重复遍历或遍历不到。有两种比较干脆利索的解决方案,来避免出现这种不可预期的运行结果。一种是遍历的时候不允许增删元素,另一种是增删元素之后让遍历报错。第一种解决方案比较难实现,因为很难确定迭代器使用结束的时间点。第二种解决方案更加合理。

二、优点

  • 抽象性
  • 简化客户端代码
  • 支持多种集合类型
  • 解耦

三、适用场景

  • 遍历不同类型的集合
  • 集合实现可能发生变化
  • 提供一致的遍历接口

四、UML类图

请添加图片描述

五、案例

遍历书架上的书并打印书名。

package mainimport "fmt"type Iterator interface {HasNext() boolNext() interface{}
}type Book struct {Title string
}func NewBook(title string) *Book {return &Book{Title: title}
}type BookShelf struct {BookList []*Book
}func NewBookShelf() *BookShelf {return &BookShelf{BookList: []*Book{}}
}func (bs *BookShelf) AddBook(book *Book) {bs.BookList = append(bs.BookList, book)
}type BookIterator struct {Index     intBookShelf *BookShelf
}func NewBookIterator(bookShelf *BookShelf) *BookIterator {return &BookIterator{Index: 0, BookShelf: bookShelf}
}func (bi *BookIterator) HasNext() bool {return bi.Index < len(bi.BookShelf.BookList)
}func (bi *BookIterator) Next() interface{} {if bi.HasNext() {book := bi.BookShelf.BookList[bi.Index]bi.Index += 1return book}return nil
}func main() {bookShelf := NewBookShelf()bookShelf.AddBook(NewBook("book 1"))bookShelf.AddBook(NewBook("book 2"))bookShelf.AddBook(NewBook("book 3"))bookIterator := NewBookIterator(bookShelf)for bookIterator.HasNext() {bookObj := bookIterator.Next()book := bookObj.(*Book)fmt.Println(book.Title)}
}
http://www.yayakq.cn/news/8860/

相关文章:

  • 建筑模型网站有哪些换网站公司
  • 做动态的网站的参考资料有哪些网站广东省备案
  • 网站开发程序员自学网络营销课程
  • 网站导航二级菜单怎么做出来的学校做网站有些什么好处
  • react.js做的网站专业网站设计公司和普通设计公司的区别
  • 河南专业做网站线上网站开发相关书籍
  • 网站开发案例详解 源代码成都科技网站建设哪里有
  • 网站建设代码流程微官网免费制作平台
  • 网站建设每年需要交多少钱营销渠道有哪些
  • 如何在自己的网站上做h5页面培训机构哪家好
  • 网站推广活动公司注册核名
  • 谷歌上怎样做网站电子商务网站建设规划报告
  • 怎么做二维码微信扫后直到网站php做网站项目的思路
  • 网站建设技术概述购物app大全
  • 没有网站可以做落地页电子工程网注册
  • 成都网站外包公司上海浦东设计网站建设
  • 企业网站的推广方式有哪些国内全屏网站欣赏
  • 网站seo公司哪家专业做meta分析需注册的网站
  • 北京网站优化步设计培训机构排行榜
  • 整站seo免费咨询秦皇岛网络编辑网站
  • 网站注册后能不能注销如何查看网站的点击量
  • 有没有什么网站专门帮人做问卷电脑有网络但是浏览器打不开网页
  • 站免费下载安装深圳机械加工厂
  • 深圳做营销网站公司简介网页设计的几种版式
  • 深圳全网站建设公司网站 缓存什么时候使用
  • 对网站建设好学吗营销方案的几个要素
  • 杨家坪网站建设网站定制开发特点
  • 宿州网站开发公司广州番禺区天气预报
  • 临沂 网站建设广告联盟 wordpress
  • 媒体发稿网站开发做一个电子商务网站