当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 一、 引言 迭代这个名词对于熟悉Java的人来说绝对不陌生。
 

 

 ·hibernate和jive缓存策略的比较    »显示摘要«
    摘要:一.基本概念 po是持久化对象,它只是对物理数据实体的一种对象表示。 vo是值对象,准确地讲,它是业务对象。 formbean只是html表单的封装,起到在控制层弱化的request中存储数据的作用,将request的get方法转 变为对象的存取值。 二.缓存策略比较 jive 1.jive的缓存策略的过程描述: (1)条件查询的时候,jive用 select id from table_n......
 ·java与xml联合编程之dom篇(1)    »显示摘要«
    摘要:dom初步 dom是document object model的缩写,即文档对象模型。前面说过,xml将数据组织为一颗树,所以dom就是对这颗树的一个对象描叙。通俗的说,就是通过解析xml文档,为xml文档在逻辑上建立一个树模型,树的节点是一个个对象。我们通过存取这些对象就能够存取xml文档的内容。 下面我们来看一个简单的例子,看看在dom中,我们是如何来操作一个xml文档的。 这是一个x......


Java设计模式之迭代器模式
一. 引言

【程序编程相关:在Java中应用设计模式-Factory

【推荐阅读:Java开发工具与开发环境问答

迭代这个名词对于熟悉java的人来说绝对不陌生.我们常常使用jdk提供的迭代接口进行java collection的遍历: 【扩展信息:Java技巧:用Java获得IP地址

iterator it = list.iterator();

while(it.hasnext()){

 //using “it.next();”do some businesss logic

}

而这就是关于迭代器模式应用很好的例子.

二. 定义与结构

迭代器(iterator)模式,又叫做游标(cursor)模式.gof给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节.

从定义可见,迭代器模式是为容器而生.很明显,对容器对象的访问必然涉及到遍历算法.你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧.这两种情况好像都能够解决问题.

然而在前一种情况,容器承受了过多的功能,它不仅要负责自己“容器”内的元素维护(添加.删除等等),而且还要提供遍历自身的接口;而且由于遍历状态保存的问题,不能对同一个容器对象同时进行多个遍历.第二种方式倒是省事,却又将容器的内部细节暴露无遗.

而迭代器模式的出现,很好的解决了上面两种情况的弊端.先来看下迭代器模式的真面目吧.

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

1) 迭代器角色(iterator):迭代器角色负责定义访问与遍历元素的接口.

2) 具体迭代器角色(concrete iterator):具体迭代器角色要实现迭代器接口,并要记录遍历中的当前位置.

3) 容器角色(container):容器角色负责提供创建具体迭代器角色的接口.

4) 具体容器角色(concrete container):具体容器角色实现创建具体迭代器角色的接口——这个具体迭代器角色于该容器的结构相关.

迭代器模式的类图如下:

560)this.style.width=560; onmousewheel = javascript:return big(this) src="http://dev.yesky.com/imagelist/05/10/7k2946abt12n.jpg">

从结构上可以看出,迭代器模式在客户与容器之间加入了迭代器角色.
...   下一页
    摘要:关于示例 我将使用一个示例应用程序和几个用例来演示这里讨论的技术特性和技术。图 1 显示的极为简单的数据模型可以表示示例用例。这个模型代表在线商店中的顾客帐户。顾客拥有以前订单的集合,每个订单包含几个商品。 560)this.style.width=560; onmousewheel = javascript:return big(this) src="http://images.51cto.......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE