设计模式之行为型迭代器模式

在不暴露对象内部结构的同时,可以顺序地访问聚合对象内部的元素。在开发中,迭代器极大简化了代码中的循环语句,使代码结构清晰紧凑。用迭代器去处理一个对象时,只需要提供处理的方法,而不必去关心对象的内部结构,这也解决了对象的使用者与对象内部结构之间的耦合。

var Iterator = function(items, container) {
  // 获取父元素
  var container = container && document.getElementById(container) || document,
  // 获取元素
      items = container.getElementsByTagName(items),
  // 获取元素长度
      length = items.length,
  // 当前索引值
      index = 0;
  // 缓存原生数组splice方法
  var splice = [].splice;
  return {
    // 获取第一个元素
    first: function() {},
    // 获取最后一个元素
    second: function() {},
    // 获取前一个元素
    pre: function() {},
    // 获取后一个元素
    next: function() {},
    // 获取某一个元素
    get: function(num) {},
    // 对每一个元素执行某一个方法
    dealEach: function(fn) {},
    // 对某一个元素执行某一个方法
    dealItem: function(num, fn) {},
    // 排他方式处理某一个元素
    exclusive: function() {}
  }
}
时间: 2024-10-15 07:38:01

设计模式之行为型迭代器模式的相关文章

跟我学设计模式视频教程——观察者模式,迭代器模式

课程视频 观察者模式 迭代器模式 课程笔记 课程笔记 课程代码 课程代码 新课程火热报名中 课程介绍 跟我学设计模式视频教程--观察者模式,迭代器模式,布布扣,bubuko.com

设计模式17:Iterator 迭代器模式(行为型模式)

Iterator 迭代器模式(行为型模式) 动机(Motivation) 在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码可以透明地访问其包含的元素:同时这种“透明变量”也为“同一种算法在多种集合对象上进行操作”提供了可能. 使用面向对象技术使这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方式. 意图(Intent)提供一种方法顺序访问一个聚合对象中各个元素 , 而又不需暴露该对象的内部表示.——

设计模式课程 设计模式精讲 18-1 迭代器模式讲解

1 课程讲解 1.1 类型: 1.2 定义: 1.3 适用场景: 1.4 优点: 1.5 缺点: 1.6 与其他设计模式关系: 1 课程讲解 1.1 类型: 行为型 1.2 定义: ◆定义:提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示 1.3 适用场景: ◆访问一个集合对象的内容而无需暴露它的内部表示◆为遍历不同的集合结构提供一个统一的接口 1.4 优点: ◆分离了集合对象的遍历行为 抽象出了一个迭代器来负责集合对象的遍历,这样可以让外部代码透明的访问内部的数据.

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---迭代器模式之DinerMenu[转]

容器的主要职责有两个:存放元素和浏览元素.根据单一职责原则(SRP)要将二者分开,于是将浏览功能打包封装就有了迭代器. 用迭代器封装对动态数组的遍历:  1 2{<HeadFirst设计模式>之迭代器模式 } 3{ 容器中的元素类                  } 4{ 编译工具:Delphi7.0             } 5{ E-Mail :[email protected]     } 6 7unit uItem; 8 9interface1011type12  TMenuIte

【设计模式与Android】迭代器模式——容器遍历,细节隐藏

什么是迭代器模式 所谓迭代器模式,就是提供一种方法顺序访问一个容器对象的各个元素,而又不需要暴露该对象的内部表示的设计模式. 迭代器模式的实现方式   在客户访问类与容器体之间插入一个第三者--迭代器,就可以在不暴露该对象的内部表示的同时解决容器类承担提供遍历方法功能造成功能冗余的问题. <水浒传>中"梁山泊全伙受招安"的时候,宋江给梁上好汉造了天罡地煞两个花名册(容器).先定义一个容器接口: public interface Company { Iterator iter

《Head first设计模式》学习笔记 – 迭代器模式

代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 爆炸性新闻:对象村餐厅和对象村煎饼屋合并了!真是个好消息!现在我们可以在同一个地方,享用煎饼屋美味的煎饼早餐,和好吃的餐厅午餐了.但是,好像有一点小麻烦:新的餐厅想用煎饼屋菜单当作早餐的菜单,使用餐厅的菜单当做午餐的菜单,大家都同意了这样实现菜单项.但是大家无法同意菜单的实现.煎饼屋使用ArrayList记录他的菜单项,而餐厅使用的是数组.他们两个都不愿意改变他们的实现,毕竟有太多代码依赖于它们了. 检查菜单项 让我

JavaScript设计模式与开发实践 迭代器模式

迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示.迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素. 一.内部迭代器和外部迭代器 1. 内部迭代器 内部迭代器函数的内部已经定义好了迭代规则,它完全接手整个迭代过程,外部只需要一次初始调用. 内部迭代器在调用的时候非常方便,外界不用关心迭代器内部的实现,跟迭代器的交互也仅仅是一次初始调用,但这也刚好是内部迭代器的缺点. var e

Java设计模式菜鸟系列(十一)迭代器模式建模与实现

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39807741 迭代器模式(Iterator):提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 一.uml建模: 二.代码实现 /** * 示例:迭代器模式 * */ interface Iterator { /** 前移 */ public Object previous(); /** 后移 */ public Object next(); /** 判断是否有下

设计模式(23)---迭代器模式

定义: 迭代器模式,提供了一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 因为迭代器模式的广泛运用,现在高级语言如c#,java等本身已经把这个模式封装在语言当中.例如:c#中的foreach in. 因此此处暂不对迭代器模式做详细的介绍,下面简单讲述在书中看到的一些基础知识: IEumerator支持对非泛型集合的简单迭代接口. public interface IEumerator { object Current { get; } bool MoveNext(); v