수년 동안 공부 한 후, 나는 교사들이 이름을 매우 많이 지명하는 것을 좋아했으며, 이름을 말하는 것은 일부 교사의 취미가되었습니다 잘 먹고 잘 자라. 수업이 잘 가르쳐라.
좋아, 교사의 이름 지정 과정이 어떻게 구현되는지 살펴 보겠습니다.
1. 평소와 같이 먼저 교사 인터페이스 클래스를 정의하겠습니다.
코드 사본은 다음과 같습니다.
공개 인터페이스 교사 {
public iterator createiterator ();
}
2. 특정 교사 (Concreteteacher) 수업은 교사 (교사) 인터페이스의 구현입니다.
코드 사본은 다음과 같습니다.
공개 수업 Concreteteacher는 교사를 구현합니다.
Private Object [] present = { "Zhang San은 여기에 있습니다", "Li Si는 여기에 있습니다", "Wang Wu는 여기에 없습니다"};
public iterator createiterator () {
새로운 Concreteiterator (this)를 반환하십시오
}
public object getElement (int index) {// 급우의 현재 출석을 얻습니다.
if (index <persone.length) {
리턴 현재 [index];
}
또 다른{
널 리턴;
}
}
public int getsize () {
return present.length; // 클래스 출석 세트의 크기를 얻으십시오. 즉, 수업에 얼마나 많은 사람들이 있는지 알아야합니다.
}
}
3. 반복자 인터페이스 클래스 정의 :
코드 사본은 다음과 같습니다.
공개 인터페이스 반복자 {
void first (); // 첫 번째
void next (); // 다음
부울 isdone (); // 이름이 완성되었습니다
대상 currentItem (); // 급우의 현재 참석
}
4. 특정 ConcreteIterator 클래스는 반복자 인터페이스의 구현입니다.
코드 사본은 다음과 같습니다.
공개 클래스 ConcreteIterator는 반복자를 구현합니다.
개인 콘크리트 교사 교사;
개인 int index = 0;
개인 int 크기 = 0;
공공 Concreteiterator (Concreteteacher Teacher) {
this.teacher = 교사;
size = teacher.getsize ();
색인 = 0;
}
public void first () {// first
색인 = 0;
}
public void next () {// 다음
if (index <size) {
색인 ++;
}
}
Public Boolean isdone () {// 이름이 완성되었습니다
return (index> = size);
}
공개 대상 currentItem () {// 급우의 현재 참석
Return Teacher.getElement (색인);
}
}
5. 테스트 수업 작성 :
코드 사본은 다음과 같습니다.
공개 수업 테스트 {
개인 반복자;
개인 교사 교사 = New Concreteteacher ();
공개 무효 작업 () {
IT = 교사 .CreateITerator ();
while (! it.isdone ()) {// 클릭을 끝내지 않은 경우
System.out.println (it.currentitem (). tostring ());
it.next (); // 다음을 클릭하십시오
}
}
public static void main (String agrs []) {
테스트 테스트 = New Test ();
test.operation ();
}
}
6. 설명 :
A : 정의 : 반복자 패턴은 집계의 내부 상황을 노출시키지 않고 순서대로 집계 된 요소에 액세스 할 수 있습니다.
B :이 예에서 교사는 반복자 객체를 만들기위한 인터페이스를 제공하고 반복자는 학생들의 출석을 가로 지르는 데 필요한 인터페이스를 정의합니다.
C : 반복자 모드의 장점은 새로운 학생들과 같은 (Concreteteacher) 객체에 변화가있을 때 급우 출석 세트에 추가되거나 급우가 줄어든다는 것입니다.이 변경은 고객에게 영향을 미치지 않습니다.