当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

<b>深化浅出Java筹划情势之迭代器情势</b>[Java编程]

赞助商链接



  本文“<b>深化浅出Java筹划情势之迭代器情势</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1、引言

迭代这个名词关于熟习Java的人来说绝对不陌生.我们常常利用JDK供应的迭代接口举行java collection的遍历:

Iterator it = list.iterator();
while(it.hasNext()){
//using “it.next();”do some businesss logic
}

而这就是关于迭代器情势利用很好的例子.

2、定义与构造

迭代器(Iterator)情势,又叫做游标(Cursor)情势.GOF给出的定义为:供应一种办法拜候一个容器(container)对象中各个元素,而又不需表露该对象的内部细节.

从定义可见,迭代器情势是为容器而生.很明显,对容器对象的拜候必定触及到遍历算法.你可以一股脑的将遍历办法塞到容器对象中去;大概根本不去供应什么遍历算法,让利用容器的人自己去实现去吧.这两种情形仿佛都可以办理问题.

但是在前一种情形,容器承受了过量的功效,它不但要负责自己“容器”内的元素保护(增添、删除等等),并且还要供应遍历自身的接口;并且由于遍历状况保存的问题,不能对同一个容器对象同时举行多个遍历.第二种方法倒是费事,却又将容器的内部细节原形毕露.

而迭代器情势的呈现,很好的办理了上面两种情形的弊端.先来看下迭代器情势的真面目吧.

迭代器情势由以下角色构成:

1)迭代器角色(Iterator):迭代器角色负责定义拜候和遍历元素的接口.

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

3)容器角色(Container):容器角色负责供应成立具体迭代器角色的接口.

4)具体容器角色(Concrete Container):具体容器角色实现成立具体迭代器角色的接口??这个具体迭代器角色于该容器的构造相关.

迭代器情势的类图以下:

从构造上可以看出,迭代器情势在客户与容器之间加入了迭代器角色.迭代器角色的加入,便可以很好的避免容器内部细节的表露,并且也使得计划标记“单一职责原则”.

注意,在迭代器情势中,具体迭代器角色和具体容器角色是耦合在一同的??遍历算法是与容器的内部细节精密相关的.为了使客户程序从与具体迭代器角色耦合的窘境中脱离出来,避免具体迭代器角色的改换给客户程序带来的改正,迭代器情势抽象了具体迭代器角色,使得客户程序更具普通性和重用性.这被称为多态迭代.


  以上是“<b>深化浅出Java筹划情势之迭代器情势</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .