设计模式之迭代器模式

一.什么是迭代器模式

迭代器模式是一种行为性设计模式,提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要是为了遍历集合数据

二.迭代器模式怎么写

给大家上一张迭代器的UML类图。
在这里插入图片描述
写个样例瞧一瞧

/**
* 迭代器接口
**/
public interface Iterator {
	
	boolean hasNext();
	
	Object next();

}

/**
* 抽象整合数据
**/
public interface Aggregate {

	 Iterator getIterator();
}

/**
* 具体的整合数据和具体的迭代器
**/
public class ConcreteAggregate implements Aggregate{

	String content[]= {"1","2","3"};
	@Override
	public Iterator getIterator() {
		return new MyIterator();
	}

	class MyIterator implements Iterator{
		
		private int index;

		@Override
		public boolean hasNext() {
			if(index<content.length) {
				return true;
			}
			return false;
		}

		@Override
		public Object next() {
			if(hasNext()) {
				return content[index++];
			}
			return null;
		}
		
		
	}
}

测试代码

public class Client {
	
	public static void main(String[] args) {
		
		Aggregate aggregate=new ConcreteAggregate();
		Iterator iterator=aggregate.getIterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		
	}

}

打印结果
1
2
3

三.小结

迭代器模式主要是为了遍历不同的整合数据对象。有点: 1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。缺点:由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。如果您觉得本文对您有所帮助,欢迎点赞或留下评论,如果觉得本文还要不足之处,也欢迎您在下方吐槽,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值