Java与模式 迭代子模式 Iterator Pattern
2009-03-26 16:43
330 查看
迭代子模式又称Cursor模式,是对象的行为模式。迭代子模式可以顺序的访问聚集中的对象而不必显露聚集的内部表象。
在java中,聚集是指那些实现了java.util.Collection接口的对象。并且声明了一个Iterator接口,所有的Java聚集全都内部实现了相应ConcreteIterator。
白箱聚集/外禀迭代子:聚集自己实现迭代逻辑,并向外部提供宽接口。这样的话,可以从外部控制聚集的迭代过程。破坏了封装性。如图,可以从外部访问elements方法以及size属性(如果需要同时对几个不同的聚集对象进行迭代时,而且聚集对象提供的迭代方式不同,这时候需要使用外禀迭代子模式):
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cheekis/EntryImages/20090326/example633736852264845000.gif)
黑箱聚集/内禀迭代子:聚集对象对迭代子对象实现宽接口,而为其它对象提供一个窄接口。在java中,通过将迭代子类设计为聚集类的内部类来放宽接口限制。如图所示(甚至可以不需要提供私有方法/属性):
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cheekis/EntryImages/20090326/example633736856378282500.gif)
优点:
迭代子模式简化了聚集的界面。
因为每一个聚集对象可以有多个迭代子对象,每个迭代子状态是独立的。
由于遍历算法被封装在迭代子角色里面,因此碟带的算法可以独立于聚集角色变化。
缺点:
迭代子模式给客户端一个聚集被顺序化的感觉。
迭代子给出的聚集元素没有类型特征。
在java中,聚集是指那些实现了java.util.Collection接口的对象。并且声明了一个Iterator接口,所有的Java聚集全都内部实现了相应ConcreteIterator。
白箱聚集/外禀迭代子:聚集自己实现迭代逻辑,并向外部提供宽接口。这样的话,可以从外部控制聚集的迭代过程。破坏了封装性。如图,可以从外部访问elements方法以及size属性(如果需要同时对几个不同的聚集对象进行迭代时,而且聚集对象提供的迭代方式不同,这时候需要使用外禀迭代子模式):
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cheekis/EntryImages/20090326/example633736852264845000.gif)
黑箱聚集/内禀迭代子:聚集对象对迭代子对象实现宽接口,而为其它对象提供一个窄接口。在java中,通过将迭代子类设计为聚集类的内部类来放宽接口限制。如图所示(甚至可以不需要提供私有方法/属性):
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cheekis/EntryImages/20090326/example633736856378282500.gif)
优点:
迭代子模式简化了聚集的界面。
因为每一个聚集对象可以有多个迭代子对象,每个迭代子状态是独立的。
由于遍历算法被封装在迭代子角色里面,因此碟带的算法可以独立于聚集角色变化。
缺点:
迭代子模式给客户端一个聚集被顺序化的感觉。
迭代子给出的聚集元素没有类型特征。
相关文章推荐
- 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释
- java设计模式---迭代器模式(iterator pattern)
- java设计模式——迭代器模式(Iterator Pattern)
- java_设计模式_迭代器模式_Iterator Pattern(2016-08-12)
- 设计模式 迭代模式(Iterator Pattern)
- 设计模式学习笔记---迭代器模式iterator pattern(Java版)
- 设计模式 - 迭代器模式(iterator pattern) Java 迭代器(Iterator) 详解
- Java设计模式——迭代器模式(Iterator Pattern)
- Java设计模式(12)迭代模式(Iterator模式)
- JAVA设计模式之 迭代器模式【Iterator Pattern】
- 小鸦之设计模式(5)-(Iterator pattern)迭代模式很糟糕吗
- Java设计模式(18)——行为模式之迭代子模式(Iterator)
- Java迭代模式(Iterator模式)
- 解读设计模式----迭代器模式(Iterator Pattern),谁才是迭代高手
- Java设计模式--迭代器模式【Iterator Pattern】
- 24种设计模式--迭代模式【Iterator Pattern】
- 迭代模式(Iterator Pattern 游标模式 CursorPattern,对象行为型模式)
- Java设计模式_Iterator(迭代容器)
- 迭代模式(Iterator Pattern)
- 迭代模式 Iterator Pattern