当我们想要循环访问另外一个实体的对象集合时,通过Iterator模式,
我们可以将循环访问的处理交给外部类,减少访问类与被访问类之间的关联。
如下图所示,对象A要访问对象B时,不用管对象B的构造如何,只需要通过方法hasNext()来判断
对象是否还存在,存在的话再通过next()方法将对象返回即可。
当被访问的对象B发生变化时,无需大量更改,只需更欢被访问对象即可。
Iterator模式的主要是体现了OOP的两个宗旨,
SRP:单一职责;
理由:不应该将B对象的访问判断处理放在B的实体类中。
OCP:扩展开放,更改封闭;
理由:当A对象需要访问的对象变化时,无需更改A以外的类。