`
squirrelRao
  • 浏览: 67823 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式之Iterator模式

阅读更多
  • IteratorPattern在GoF的定义:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。
  • 实现:遍历任何对象集合
  • 同时:降低类之间的耦合度,提高复用性
  • 相关Pattern: Visitor Pattern, Composite Pattern,Factory Method Pattern(有时会用到)
  • JDK中使用了Iterator pattern的类有:iterator
    以UML类图的形式,Iterator Pattern可表示为:(以Java为实现语言)
  • 通过Iterator,借助在ConcreteInterator中定义的实现,在遍历Entity对象组成的集合时达到了屏蔽ConcreateAggregate中具体实现的目的,自然就降低了类之间的耦合度,提高了复用率。不论ConcreteAggregate中Entity的集合是List或者是Vector,或是Entity[],对于外界调用者来说都没有任何影响。

          在Iterator pattern之上遍历集合对象时,调用实现变得十分通用:

         // ---code----
          ConcreteAggregate object = new ConcreteAggregate();
          Iterator iterator = object.createIterator();
          while(iterator.hasNext())
          {
                Object entity = iterator.next();
                 ........
           }
  •  Aggregate和Iterator类能不能改写成Interface而不使用Abstract Class ?

            Aggregate类不能改写为Interface,因为在Aggregate中实现了createIterator()方法,

            如果改写成Interface将不能在Aggregate中实现createIterator(),createIterator()的
            实现就必须放在ConcreteAggregate中,显然,这样做是十分多余而且是违背所谓的
            OO原则的。
           
            Iterator类不能改写为Interface的理由与Aggregate不能改写为Interface是一样的,
            Iterator中肩负着实现hashNext()的使命。
            
            当然,Iterator与Aggregate是有不同之处的,Iterator肩负的任务并没有Aggregate那样重,
            因为就方法hasNext()和next()所完成的业务而言,Iterator和ConcreteIterator之间是一致的。
            而方法CreateIterator()如果放在ConcreteAggregate而言,就是纯粹的浪费了。
  • 大小: 25.8 KB
分享到:
评论

相关推荐

    Java设计模式之Iterator模式

    所谓Iterator模式,即是Iterator为不同的容器提供一个统一的访问方式。本文以java中的容器为例,模拟Iterator的原理。 参考:马士兵 Java设计模式 Iterator 1.首先定义一个容器Collection接口. 2.定义一个Iterator...

    Java设计模式之Iterator模式介绍

    Iterator模式是一种行为设计模式,它的主要作用是在不暴露容器内部结构的情况下,允许外部代码逐个访问容器中的元素。在Java中,Iterator模式被广泛应用于集合框架,如ArrayList、LinkedList等,使得用户能够方便地...

    设计模式(C#)之迭代器模式(Iterator Pattern)

    迭代器模式是软件设计模式中的一种行为模式,它在C#等面向对象编程语言中有着广泛的应用。这个模式的主要目标是允许用户遍历一个聚合对象(如数组、集合或列表)的所有元素,而无需了解底层的实现细节。下面将详细...

    设计模式之迭代器模式(Iterator)

    迭代器模式是软件设计模式中的一种行为模式,它在编程中扮演着重要的角色,尤其是在处理集合数据时。迭代器模式的核心思想是提供一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式使得用户可以在不...

    (行为型模式) Iterator 迭代器模式

    C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载

    设计模式之_Iterator_00_源码

    迭代器(Iterator)设计模式是软件开发中的一种行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露...通过深入学习和实践`设计模式之_Iterator_00_源码`,我们可以提升对这一重要设计模式的理解和运用能力。

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    24种设计模式以及混合设计模式

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。在本文中,我们将深入探讨24种设计模式,并结合混合设计模式的概念,以及它们在实际项目中的应用案例。 首先,设计...

    设计模式C++学习之迭代器模式(Iterator)

    迭代器模式是软件设计模式中的行为模式之一,它在C++编程中有着广泛的应用。这个模式提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。通过迭代器,用户可以遍历集合中的所有元素,而无需知道如何...

    IteratorPattern 迭代设计模式

    迭代器模式(IteratorPattern)是设计模式中的一种行为模式,它提供了一种顺序访问聚合对象元素的方法,同时又不暴露其底层表示。这种模式允许我们遍历集合对象的元素,而无需暴露其内部结构。在Java、C#等面向对象...

    JavaScript设计模式与开发实践.pdf

    由浅入深地讲解了16个设计模式,包括 singleton模式、Factory模式、Abstract Factory模式、Builder模式、Prototype模式、Adapter模式、Bridge模式、Composite模式、Decorator模式、Flyweight模式、Proxy模式、Chain ...

    【Java设计模式】(1)迭代器模式Iterator

    迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...

    23种面向对象设计模式

    文档中的“23种设计模式学习笔记.doc”可能包含了对这23种模式的详细解释和实例,而“设计模式之我爱我家.doc”可能从一个更生活化的角度来阐述设计模式的概念。“软件23种设计模式,超级经典的.pdf”可能是对这些...

    Java源码分析:深入探讨Iterator模式

    ### Java源码分析:深入探讨Iterator模式 #### 一、引言 在Java编程语言中,集合框架(`java.util`包)提供了多种容器类来存储对象,如`List`、`Set`和`Map`等。为了遍历这些容器中的元素,Java引入了迭代器模式...

    设计模式那点事

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的可重用解决方案。《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、...

    二十三种设计模式【PDF版】

    设计模式之 Iterator(迭代器) 这个模式已经被整合入Java的Collection.在大多数场合下无需自己制造一个Iterator,只要将对象装入Collection中, 直接使用 Iterator 进行对象遍历。 设计模式之 Template(模板方法) ...

    您的设计模式.pdf。

    "设计模式" 在软件开发中,设计模式是一种解决特定问题的通用方法。它可以帮助开发者编写更加灵活、可维护、可扩展的代码。本书《您的设计模式》对设计模式进行了详细的讲解,涵盖了策略模式、代理模式、单例模式、...

    Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现

    迭代器模式(Iterator Pattern)和组合模式(Composite Pattern)是设计模式中的两种重要结构型模式,它们在软件设计中有着广泛的应用。这两种模式都属于GoF(Gang of Four)设计模式,旨在解决特定的问题,提升代码...

    C#面向对象设计模式纵横谈\18 行为型模式Iterator迭代器模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第18节:行为型...

Global site tag (gtag.js) - Google Analytics