욱'S 노트

Iterator - 순환 구조 만들기 본문

Methdology/Design Pattern

Iterator - 순환 구조 만들기

devsun 2012. 4. 23. 12:42
When Using It

Heavy한 Job이 수행되는 클래스들을 미리 만들어 놓고 공유하고 싶을때

Class Diagram 
 


Sample Code



public interface Aggregate {

}


public interface Iterator {

public Object next();

public boolean hasNext();

}


public class ConcreteAggregate implements Aggregate {

private Object[] items;

public Iterator iterator() {

return new ConcreteIterator(this);

}


public Object getItem(int index) {

if ( index < items.length - 1)

return items[index];

else 

return null;

}

public int getLength() {

return items.length;

}

}




public class ConcreteIterator implements Iterator {

private ConcreteAggregate aggregate;

private int index;

public ConcreteIterator(ConcreteAggregate aggregate) {

this.aggregate = aggregate;

this.index = 0;

}


@Override

public Object next() {

Object item = aggregate.getItem(index);

if ( item != null ) {

index++;

}

return item;

}


@Override

public boolean hasNext() {

if ( index < aggregate.getLength()) {

return true;

} else {

return false;

}

}

}



Caution


특별한 주의사항은 없다.
Comments