Depois de estudar por tantos anos, encontrei um problema. Coma bem e durma bem.
Ok, vamos dar uma olhada em como o processo de nomeação do professor é implementado:
1. Como sempre , vamos primeiro definir a aula de interface do professor:
A cópia do código é a seguinte:
Professor de interface pública {
Public Iterator CreateIterator ();
}
2. A aula específica de professores (concretteteacher) é uma implementação da interface do professor (professor):
A cópia do código é a seguinte:
classe pública ConcretetEacher implementa o professor {
Objeto privado [] presente = {"Zhang San está aqui", "Li si está aqui", "Wang Wu não está aqui"};
Public Iterator CreateIterator () {
retornar novo concreto (isso);
}
Public Object GetElement (Int Index) {// Obtenha a participação atual do colega de classe
if (índice <presente.length) {
retornar presente [índice];
}
outro{
retornar nulo;
}
}
public int getSize () {
retornar presente.length;
}
}
3. Defina a classe de interface do iterador:
A cópia do código é a seguinte:
interface pública Iterator {
void primeiro ();
void a seguir ();
Boolean Isdone ();
Objeto currentItem ();
}
4. A classe concreta específica é uma implementação da interface do iterador:
A cópia do código é a seguinte:
classe pública concreteterator implementa o iterador {
Professor de Concretetomestor Privado;
private int index = 0;
private int tamanho = 0;
Public Concreteterator (Professor ConcretetEacher) {
this.teacher = professor;
size = professor.getSize ();
índice = 0;
}
public void primeiro () {// primeiro
índice = 0;
}
public void next () {// Próximo
if (índice <tamanho) {
índice ++;
}
}
public boolean iSdone () {// é o nome concluído
return (índice> = tamanho);
}
public Object currentItem () {// Atendimento atual de colegas de classe
Return professor.getElement (índice);
}
}
5. Escreva aulas de teste :
A cópia do código é a seguinte:
Teste de classe pública {
iterador privado;
Professor particular do professor = novo concretista ();
public void Operation () {
it = professor.createIterator ();
while (! it.isdone ()) {// se você não terminou de clicar
System.out.println (it.currentItem (). Tostring ());
It.Next ();
}
}
public static void main (string Agrs []) {
Teste de teste = novo teste ();
test.operation ();
}
}
6. Descrição :
R: Definição: O padrão do iterador pode acessar um elemento agregado em sequência sem expor a situação interna do agregado.
B: Neste exemplo, o professor fornece uma interface para criar um objeto iterador, e o iterador define a interface necessária para atravessar a participação dos alunos.
C: A vantagem do modo Iterador é que, quando há uma alteração no objeto (concretteteacher), como novos alunos são adicionados ao conjunto de presença de colega de classe ou menos colegas de classe são reduzidos, essa alteração não tem efeito no cliente.