《Java与模式》学习笔记:设计模式——迭代子(Iterator)模式
百度广告
迭代子(Iterator)模式
迭代子模式又叫游标模式,是对象的行为模式。
迭代子相当于在客户端和聚集之间加了一层,这样一来,迭代子就可以缓冲客户端或聚集的变化。使得聚集的变化对客户端透明(由于客户端是对迭代子编程的,只要迭代子的接口不变,聚集怎么变都不会影响到客户端),同样的客户端的需求变化对聚集也是透明的(客户端需求变了,只需要修改迭代子的接口和实现,不需要修改聚集的结构)。这样就将可变的部分封装到了迭代子中,是符合"开-闭"原则的。
1)定义:
外禀子:聚集本身提供访问其内部元素的方法,可以通过外部的迭代子来遍历聚集,这时迭代子是个外部类,只维持对聚集的一个引用。
2)安全性区别:
外禀子:不安全,因为聚集提供访问其内部元素的方法,在迭代过程中,聚集的元素会被客户端绕过迭代子修改,所以可能会导致迭带过程崩溃。
3)何时使用外禀子:当聚集会被几个不同的方法和对象同时共享和控制,需要这个聚集的多个迭代子分别维护各自的游标时,使用外禀子
4)何时使用内禀子:当对安全方面的要求比较高,而且又不需要共享时。
1)主动迭代子和被动迭代子:
被动迭代子:迭代子自行推进迭代过程
2)静态迭代子和动态迭代子(都是对外禀子来说的)
动态迭代子:迭代子内部只维持一份聚集的引用,可能出现迭代崩溃
3)Fail Fast
优点:
对于外禀子而言,一个聚集可以提供多个迭代子,而且这些迭代子的迭代状态都是相互独立的,这样一个聚集可以在多个方法中被同时遍历。
迭代子给客户端一个聚集被顺序化的错觉
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>