迭代器模式(Iterator Pattern)
1. 概念
Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
2. 应用场景 --自行实现可遍历容器时,需要implements Iterator
对象容器的遍历场景。
3. 优点
a. 让客户遍历你的对象,而又无法窥视你存储对象的方式;
b. Iterator封装“遍历集合内每个对象的过程”;--将遍历的任务放在迭代器上,而不是集合上;简化了集合的接口和实现,也让责任各得其所(单一职责原则 > 高内聚)
c. 每种ConcreteAggregate集合的内部实现可能不同,但遍历方法都统一起来了,方便客户端代码。--客户端代码与集合实现类解耦。
4. 注意事项
尽量不要自己写迭代器模式。使用Java提供的Iterator一般就足够了。
5. 代码实践:
JDK:
• java.util.Iterator
• java.util.Enumeration
Android: 迭代器使用规则:
• 自行实现可遍历容器时,建议只implements Iterator(实现Collection则代码逻辑较复杂)
• 使用Java内置容器时,建议针对Collection接口编程
网友评论