------------------------------ 迭代器模式(Iterator) -------------------------------
(1)
基本概念:
迭代器模式属于行为型模式,其意图是提供一种方法顺序访问一个聚合对象中得各个元素,而又不需要暴露该对象的
内部表示。
至少可以历遍first,next,previous,last,isOver,或是历遍选择符合某种条件的子元素.
(2)
结构:
由一个接口与一个实现类组成.
接口:
主要是定义各历遍的方法.
实现类:
需要一个计算点private int current=0 ; 以及一个容器Vector,来存在原来的进行历遍的一团东西;再对接口方法进
行实现.
(3)
实例:
Iterator接口:
package iterator;
public interface Iterator{
/*
Item:即是集合中的各对象的类型.若为String,即把所有的ITEM改为String,若为其它自定义的类,则改为各自定义的类
的接口,或类. --->important.
*/
public Item first();
public Item next();
public boolean isDone();
public Item currentItem();
}
Controller类实现了Iterator接口。
package iterator;
import java.util.Vector;
public class Controller implements Iterator{
private int current =0;
Vector channel;
public Controller(Vector v){
channel = v;
}
public Item first(){
current = 0;
return (Item)channel.get(current);
}
public Item next(){
current ++;
return (Item)channel.get(current);
}
public Item currentItem(){
return (Item)channel.get(current);
}
public boolean isDone(){
return current>= channel.size()-1;
}
}
Television接口:
package iterator;
import java.util.Vector;
public interface Television{
public Iterator createIterator();
}
HaierTV类实现了Television接口。
package iterator;
import java.util.Vector;
public class HaierTV implements Television{ ---对象
private Vector channel;
public HaierTV(){
channel = new Vector();
channel.addElement(new Item("channel 1")); --各元素,用VECTOR存放
channel.addElement(new Item("channel 2"));
channel.addElement(new Item("channel 3"));
channel.addElement(new Item("channel 4"));
channel.addElement(new Item("channel 5"));
channel.addElement(new Item("channel 6"));
channel.addElement(new Item("channel 7"));
}
public Iterator createIterator(){
return new Controller(channel); --把这个VECTOR放到迭代器中构造方法中去
}
}
Client客户端:
package iterator;
public class Client{
public static void main(String[] args){
Television tv = new HaierTV();
Iterator it =tv.createIterator();
System.out.println(it.first().getName());
while(!it.isDone()){
System.out.println(it.next().getName());
}
}
}
Item类的接口:
package iterator;
public class Item{
private String name;
public Item(String aName){
name = aName;
}
public String getName(){
return name;
}
}
分享到:
相关推荐
Java 迭代器模式是一种行为设计模式,它提供了一种访问集合对象元素的方法,而不需要暴露该对象的内部表示。该模式适用于需要遍历集合对象的场景,例如数组、列表、树等。 迭代器模式的主要优点是: 1. 避免了集合...
Java设计模式 - 迭代器模式 迭代器模式是一种对象行为型模式,是一种提供一...迭代器模式是一种常用的设计模式,可以简化聚合对象的设计,提高代码的可维护性和可扩展性。但是,需要根据实际情况选择合适的设计模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。
在Java编程语言中,迭代器模式(Iterator Pattern)是一种常用的设计模式,用于顺序访问集合对象中的元素,而无需暴露其底层表示。这种模式提供了一种方法来访问一个聚合对象的元素,而无需暴露该对象的内部结构。在...
下面将总结五种常用的Java设计模式,分别是单例模式、工厂模式、建造模式、_observer模式和迭代器模式。 单例模式 单例模式是一种创造型设计模式,主要目的是使内存中保持一个对象。单例模式可以保证在整个应用...
设计模式的应用不仅限于上述几种,还包括适配器模式、装饰器模式、观察者模式、责任链模式、命令模式、迭代器模式、访问者模式、模板方法模式等。它们都是软件设计的宝贵工具,帮助我们写出更优雅、可复用的代码。...
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式。 迭代器模式 java demo
本资料包聚焦于“JAVA程序常用设计模式”,旨在帮助中高级JAVA程序员进一步提升编程能力。 1. 单例模式:确保一个类只有一个实例,并提供一个全局访问点。在Java中,单例模式通常通过双重检查锁定、静态内部类或...
迭代器模式 命令模式 职责链模式 进来者模式 访问者模式 数据结构 Stack - 使用泛型实现Stack 生成斐波那契数列 使用容器 利用迭代器实现原材料 实用程序 StringUtil类 - 封装常用的String方法 基本的 正则表达式的...
Java 设计模式四大常用架构迭代模型并行排序算法是软件工程中的一种重要思想,旨在提高软件的重用性和可维护性。它可以应用于不同的领域,包括桌面应用软件开发、嵌入式系统开发和企业计算应用等。
这23个常用的设计模式涵盖了创建型、结构型和行为型三大类别,是每一个Java开发者应当熟悉并掌握的基础知识。 1. **创建型设计模式**:主要包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。单例...
【Java常用设计模式详解】 设计模式是软件开发中的一种最佳实践,它提供了在特定场景下解决常见问题的模板。在Java中,设计模式分为三大类:创建型、结构型和行为型模式。以下是对这些模式的详细解释: 1. 创建型...
这份资料详细介绍了在Java编程中常用的23种设计模式,旨在提升开发者对于软件设计的理解和应用能力,从而写出更加高效、可维护和可扩展的代码。 首先,我们来看一下23种设计模式的分类:它们可以分为三大类,即创建...
JAVA常用设计模式详解大全 在软件开发中,设计模式是指在软件设计中反复出现的问题解决方案,JAVA作为一门广泛应用的编程语言,设计模式在JAVA开发中扮演着重要角色。下面将对JAVA常用设计模式进行详细的介绍。 ...
迭代器模式是一种常用的行为设计模式,它在软件开发中扮演着重要的角色,特别是在处理集合对象的遍历上。该模式的核心思想是提供一种方法来顺序访问聚合对象的元素,同时不暴露其底层表示。这使得迭代器模式具有以下...
本资源包含了2016年6月20日关于Java常用设计模式的源码和作者的心得体会,这对于我们深入理解和应用这些模式具有很大的帮助。 首先,我们要了解设计模式的基本分类。设计模式分为三大类:创建型模式(Creational ...
文档“java常用23种设计模式(含源码解说).docx”中,每一种设计模式都会详细阐述其意图、主要参与者、适用情况、优缺点以及实际应用的源码示例。例如,单例模式确保一个类只有一个实例,并提供全局访问点;工厂方法...
迭代器模式是一种常用的设计模式,它允许我们以一种顺序访问集合对象的方式遍历其元素,而无需暴露该对象的内部表示。接下来,我们将详细讨论这一模式的关键概念、结构及其在Java集合框架中的具体实现。 ### 一、...
- **迭代器模式**:提供一种方法顺序访问一个聚合对象的元素,而又不暴露其底层表示。 - **责任链模式**:避免请求的发送者和接收者之间的耦合,将多个处理对象链接在一起,形成一条链。 - **备忘录模式**:在不...