迭代器模式git
public interface Iterator { Object next(); boolean hasNext(); }
public interface Aggregate { Iterator iterator(); }
public class ConcreteAggregate implements Aggregate { @Override public Iterator iterator() { return new ConcreteIterator(); } private class ConcreteIterator implements Iterator { @Override public Object next() { System.out.println("ConcreteIterator next ..."); return null; } @Override public boolean hasNext() { System.out.println("ConcreteIterator hasNext ...."); return true; } } }
public static void main(String[] args) { Aggregate aggregate = new ConcreteAggregate(); Iterator iterator = aggregate.iterator(); if(iterator.hasNext()){ iterator.next(); } }
ConcreteIterator hasNext .... ConcreteIterator next ...
https://github.com/Seasons20/DisignPattern.git
ENDgithub