行为型--迭代器模式 灰太狼 2021-09-28 16:32 258阅读 0赞 ## 概念 ## -------------------- 顺序访问集合对象的元素,且不需要知道集合对象的底层表示。 优点: 1. 在不暴露集合的内部结构情况下,可以让外部代码透明地访问集合内部的数据。 2. 将存储数据和遍历数据功能分开,简化了集合类。 3. 在同一个集合上可以定义多种遍历方式。 4. 在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。 缺点: 1. 由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。 ## 举例 ## -------------------- public class Client { public static void main(String[] args) { NameRepository namesRepository = new NameRepository(); for(Iterator iter = namesRepository.getIterator(); iter.hasNext();){ String name = (String)iter.next(); System.out.println("Name : " + name); } } } // 迭代器,定义一些方法以实现某种遍历 interface Iterator { public boolean hasNext(); public Object next(); } // 集合类 interface Container { public Iterator getIterator(); } class NameRepository implements Container { public String names[] = {"Robert" , "John" ,"Julie" , "Lora"}; @Override public Iterator getIterator() { return new NameIterator(); } // 迭代器的具体实现:内部类 private class NameIterator implements Iterator { int index; @Override public boolean hasNext() { if(index < names.length){ return true; } return false; } @Override public Object next() { if(this.hasNext()){ return names[index++]; } return null; } } }
还没有评论,来说两句吧...