设计模式之迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
public interface Iterator<T> { public T next(); public boolean isDone(); public T currentItem(); } public class ConcreteIterator implements Iterator { private ConcreteComponent component; private int current = 0; public ConcreteIterator(ConcreteComponent component) { this.component = component; } @Override public Object next() { Object res = null; current++; if (current < component.size()) { res = component.get(current); } return res; } @Override public boolean isDone() { return current >= component.size() ? true : false; } @Override public Object currentItem() { return component.get(current); } }
public interface Component { public Iterator createIterator(); } public class ConcreteComponent extends ArrayList implements Component{ @Override public Iterator createIterator() { return new ConcreteIterator(this); } public int getCount(){ return this.size(); } }
public class IteratorDemo { public static void main(String[] args) { ConcreteComponent component = new ConcreteComponent(); component.add("AAA"); component.add("BBB"); component.add("CCC"); Iterator iterator = new ConcreteIterator(component); while (!iterator.isDone()) { System.out.println("当前:" + iterator.currentItem()); iterator.next(); } } }
知识的学习,要真诚与谦虚才不会有眼无珠,人生苦短,不能浪费时间做无用功。
人生学习最悲哀的不过是,因为无知傲慢错过真正的好东西,又因为无知贪婪在假东西上耗费生命。