设计模式学习(十二)(迭代器模式)

模式名称

迭代器模式(Iterator Pattern)

解决问题

提供一个方法来遍历聚合中的对象,而不需要暴露内部的表示。

就假如说我们需要遍历一个ArrayList和一个数组,但是我们没有一个公共的接口去遍历,我们需要去看ArrayList和数组的内部,但是我们一旦使用了迭代器,我们将不需要进行关心系统的内部,只需要利用迭代器进行遍历就好了。

解决方法

1.创建迭代器接口,拥有hasnext和next方法。

2.创建聚合包装接口,使得聚合类可以获取迭代器。

3.创建面向某个聚合包装实体的迭代器。

4.创建聚合包装实体。

设计原则

一个类应该只有一个引起变化的愿意。

迭代器模式的优点

1.给出一个相同的接口来遍历不同的聚合对象,面向接口编程。

2.简化聚合类。

3.增加聚合类和迭代器类都很方便。

4.在遍历时无需暴露聚合类的内部实现,简单。

迭代器模式的缺点

1.在创建聚合类时要创建他的迭代器,使类的数目成对增加,比较复杂。

 

打赏