大战设计模式12—— 迭代器模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大战设计模式12—— 迭代器模式相关的知识,希望对你有一定的参考价值。

迭代器模式(Iterator)

 

设计模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample

 

一、定义

提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。

 

二、结构

Iterator(抽象迭代器):定义了访问和遍历元素的接口,声明了用于遍历数据元素的方法。

ConcreteIterator(具体迭代器):它实现了抽象迭代器接口,完成对聚合对象的遍历。

Aggregate(抽象聚合类):用于存储和管理元素对象,声明一个CreateIterator()方法用于创建一个迭代器对象,充当抽象迭代器工厂角色。

ConcreteAggregate(具体聚合类):实现了在抽象聚合类中声明的CreateIterator()方法,返回一个对应的具体迭代器ConcreteIterator实例。

 

三、优点

支持以不同方式遍历一个聚合对象,在同一个聚合对象上可以定义多种便利方式。

增加新的聚合类和迭代器类都很方便,无须修改原有代码,符合开闭原则。

 

四、缺点

增加新的聚合类需要对应增加新的迭代器类

 

五、应用场景

访问一个聚合对象的内容而无须暴露它的内部表示。

需要为一个聚合对象提供多种遍历方式。

 

六、个人总结

1、如果你已经了解java中的迭代器,那么迭代器设计模式应该很容易理解,简单的说,java利用这样的设计模式设计出了它的迭代器

对于我们熟知的那些集合都可以使用迭代器去遍历

2、例子中我们自己创建了迭代器的接口,这是我们学习所需要了解内部机制所用的

在实际中我们通常使用java.util.Iterator

 

 

 

参考博客:http://www.cnblogs.com/edisonchou/p/7442138.html

以上是关于大战设计模式12—— 迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式 行为型模式 -- 迭代器模式(定义结构实例优缺点分析)

Java源代码-迭代器模式

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式-迭代器模式

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式学习