知识大全 设计模式-行为型-迭代器模式(Iterator)
Posted 知
篇首语:形成天才的决定因素应该是勤奋-郭沫若本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 设计模式-行为型-迭代器模式(Iterator)相关的知识,希望对你有一定的参考价值。
设计模式-行为型-迭代器模式(Iterator) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
概述
给定一个语言 定义它的文法的一种表示 并定义一个解释器 这个解释器使用该表示来解释语言中的句子
适用性
访问一个聚合对象的内容而无需暴露它的内部表示
支持对聚合对象的多种遍历
为遍历不同的聚合结构提供一个统一的接口(即 支持多态迭代)
参与者
Iterator
迭代器定义访问和遍历元素的接口
ConcreteIterator
具体迭代器实现迭代器接口
对该聚合遍历时跟踪当前位置
Aggregate
聚合定义创建相应迭代器对象的接口
ConcreteAggregate
具体聚合实现创建相应迭代器的接口 该操作返回ConcreteIterator的一个适当的实例
类图
示例代码:
package sql actioned;
import java util ArrayList;
import java util List;
/**
* 迭代器模式 实现示例
* @author sean
*/
interface IIterator<T>
T next();
void first();
void last();
boolean hasNext();
class IIteratorImpl<T> implements IIterator<T>
private IList<T> list;
private int index;
public IIteratorImpl (IList<T> list)
index = ;
this list = list;
@Override
public T next()
T t = list get(index);
index++;
return t;
@Override
public void first()
index = ;
@Override
public void last()
index = list size();
@Override
public boolean hasNext()
return index < list size();
interface IList<T>
IIterator<T> iterator();
T get(int index);
int size();
void add(T obj);
class IListImpl<T> implements IList<T>
private List<T> list;
private int index;
public IListImpl()
list = new ArrayList<T>();
index = ;
@Override
public IIterator<T> iterator()
return new IIteratorImpl<T> (this);
@Override
public T get(int index)
return list get(index);
@Override
public int size()
return list size();
@Override
public void add(T obj)
list add(obj);
public class IteratorTest
public static void main(String[] args)
// ways of iteration
IList<String> list = new IListImpl<String>();
list add( a );
list add( b );
list add( c );
// st way
System out println( using iterator to traverse: );
IIterator<String> iter = erator();
while (iter hasNext())
System out println(iter next());
// nd way
System out println( using list to traverse: );
for (int i= ; i<list size(); i++)
System out println(list get(i));
结果:
using iterator to traverse:
a
b
c
using list to traverse:
a
b
cha138/Article/program/Java/gj/201311/27448相关参考
Java设计模式之迭代器模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言 迭代这个名词对
《PHP设计模式介绍》第八章迭代器模式 类中的面向对象编程封装应用逻辑类就是实例化的对象每个单独的对象都有一个特定的身份和状态单独的对象是一种组织代码的有用方法但通常你会处理一组对象或者集合
有很多方法可以把对象堆起来成为一个集合你可以把它们放进数组堆栈列表或者是散列表中这是你的自由 迭代器模式定
Java设计模式之Iterator模式介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!所谓Ite
本文提出了一种界面设计中的架构模式界面组装器模式它致力于分解界面将界面和组装行为解耦将界面逻辑处理与领域逻辑处理解耦这样我们在开发GUI胖客户端界面应用时可以从众多的界面控制管理中解脱出来而专注于
foreach foreach无需要知道集合中元素个数就可以迭代集合中的元素它其实是迭代器模式的一个包装就语言层面来说是while的另一种形式 usingSystem; usingSyste
C#迭代器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 迭代器是C#中的新功能迭代器是方法ge
在平时使用s:iterator这个迭代标签一般我们都是把一个相同类型的多个对象放入一个集合当中那么是否可以放入不相同的对象来迭代呢?日常工作有时候可能是需要这样来简化程序的我今天测试了一下好像完全
在java的设计模式中我大意分为三块创建型模式结构型模式行为模式对其进行了相对详细和幽默的风格讲解 一创建型模式 &nb
讲解Oracle优化器的优化方式和优化模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Ora