慢慢说设计模式:迭代器模式

160 阅读1分钟

小Q:什么是设计模式

慢慢:设计模式是系统服务设计中针对常见场景的一种解决方案,可以解决功能逻辑开发中遇到的共性问题。设计模式并不局限最终的实现方案,而是在这种概念模式下,解决系统设计中的代码逻辑问题。

小Q:什么是迭代器模式?

慢慢:迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又无需暴露该对象的内部表示。

小Q:赶快上代码。

慢慢:好的,先定义一个迭代器接口:

public interface Iterator {
    public boolean hasNext();
    public Object next();
}

实际的迭代器对象:

public class NameIterator implements Iterator {
    int index = 0;
  
    @Override
    public boolean hasNext() {
        if (index < names.length) {
            return true;
        }
        return false;
    }
  
    @Override
    public Object next() {
        if (this.hasNext()) {
            return names[index++];
        }
        return null;
    }
}

容器接口:

public interface Container {
    public Iterator getIterator();
}

实际的容器:

public class NameRepository implements Container {
    public String[] names = {"Robert", "John", "Julie", "Lora"};
  
    @Override
    public Iterator getIterator() {
        return new NameIterator();
    }
}

测试:

public class Demo {
    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);
        }
    }
}