디자인 모드 - 서브 교체 모드

2692 단어 디자인 모드
[size = large] [color = blue] 교체 기 모드 는 모 이 는 대상 [/ color] [/ size] 에 순서대로 접근 하 는 것 입 니 다.
[size = large] [color = red] 1, 추상 집합 [/ color] [/ size]
package iterator;
/*
*
*/
public interface AbstractCollection {
//
Object get(int i);
//
int size();
}

[size = large] [color = red] 2. 구체 적 인 집합 [/ color] [/ size]
package iterator;

public class MyCollection implements AbstractCollection {
//
Object[] a;

public MyCollection(Object[] a) {
super();
this.a = a;
}

@Override
public Object get(int i) {
return a[i];
}

@Override
public int size() {
return a.length;
}

}

[size = large] [color = red] 3. 추상 적 인 교체 기 [/ color] [/ size]
package iterator;

public interface AbstractIterator {
//
Object next();
//
Object previous();
//
boolean hasNext();
//
Object first();
}

[size = large] [color = red] 4, 구체 적 인 교체 기 [/ color] [/ size]
package iterator;

public class MyIterator implements AbstractIterator {
//
private AbstractCollection col;
//
private int index=-1;

public MyIterator(AbstractCollection col) {
super();
this.col = col;
}

@Override
public boolean hasNext() {
if(index return true;
else
return false;
}

@Override
public Object next() {
if(index return col.get(++index);
else
return null;
}

@Override
public Object previous() {
if(index>=1)
return col.get(--index);
else
return null;
}

@Override
public Object first() {
return col.get(0);
}

}

[size = large] [color = red] 5, 테스트 [/ color] [/ size]
package iterator;

public class Test {
public static void main(String[] args) {
String[] a={"d","c","b","a"};
//
AbstractCollection ac=new MyCollection(a);
AbstractIterator ai=new MyIterator(ac);
System.out.println(ai.first());
System.out.println("------------");
while(ai.hasNext()){
System.out.println(ai.next());
}

}
}


[size = large] [color = red] 6, 결과 [/ color] [/ size]
d
------------
d
c
b
a

좋은 웹페이지 즐겨찾기