迭代器是一种行为设计模式, 让你能在不暴露复杂数据结构内部细节的情况下遍历其中所有的元素。
在迭代器的帮助下, 客户端可以用一个迭代器接口以相似的方式遍历不同集合中的元素。
复杂度:
流行度:
使用示例: 该模式在 Java 代码中很常见。 许多框架和程序库都会使用它来提供遍历其集合的标准方式。
下面是该模式在核心 Java 程序库中的一些示例:
识别方法: 迭代器可以通过导航方法 (例如 next
和 previous
等) 来轻松识别。 使用迭代器的客户端代码可能没有其所遍历的集合的直接访问权限。
迭代访问社交网络档案
在本例中, 迭代器模式被用于在不向客户端代码暴露通信细节的情况下访问远程社交网络集合中的社交媒体档案。
iterators
iterators/ProfileIterator.java: 定义档案接口
iterators/FacebookIterator.java: 在 Facebook 档案上实现迭代
iterators/LinkedInIterator.java: 在领英档案上实现迭代
social_networks
social_networks/SocialNetwork.java: 定义通用的社交网络接口
social_networks/Facebook.java: Facebook
social_networks/LinkedIn.java: 领英
profile
profile/Profile.java: 社交档案
spammer
spammer/SocialSpammer.java: 消息发送应用
Demo.java: 客户端代码
OutputDemo.txt: 执行结果