Учившись в течение стольких лет, я нашел проблему. Ешьте хорошо и хорошо спите.
Хорошо, давайте посмотрим, как реализован процесс именования учителя:
1. Как обычно , давайте сначала определим класс интерфейса учителя:
Кода -копия выглядит следующим образом:
Учитель публичного интерфейса {
public iterator createIterator (); // Нажмите на него
}
2. Класс конкретного учителя (ConceteTeacher) - это реализация интерфейса учителя (учителя):
Кода -копия выглядит следующим образом:
публичный класс ConceteTeacher реализует учителя {
Частный объект [] present = {Zhang San здесь »,« Li Si здесь »,« Ван Ву здесь нет »};
public iterator createIterator () {
Вернуть новый конкрет (это);
}
public Object getElement (int index) {// Получить текущую посещаемость одноклассника
if (index <presest.length) {
вернуть подарок [index];
}
еще{
вернуть ноль;
}
}
public int getSize () {
вернуть настоящее.
}
}
3. Определите класс интерфейса итератора:
Кода -копия выглядит следующим образом:
публичный интерфейс итератор {
void First (); // Первый
void Next ();
Boolean Isdone ();
Object CurrentItem ();
}
4. Конкретный класс ConceteIterator - это реализация интерфейса итератора:
Кода -копия выглядит следующим образом:
Public Class ConcreteIterator реализует итератор {
частный преподаватель бетона;
private int index = 0;
private int size = 0;
Public ConcreteTerator (учитель ConcreteTeacher) {
this.teacher = учитель;
size = учитель.getsize (); // Получить количество одноклассников
index = 0;
}
public void First () {// First
index = 0;
}
public void Next () {// Далее
if (index <size) {
index ++;
}
}
public boolean isdone () {// - это название
return (index> = size);
}
Public Object CurrentItem () {// Текущая посещаемость одноклассников
return wearsy.getElement (index);
}
}
5. Напишите классы тестирования :
Кода -копия выглядит следующим образом:
открытый тест класса {
частный итератор это;
Частный учитель = новый ConcreteTeacher ();
public void operation () {
it = учитель.createiterator (); // Учитель начинает звонить
while (! it.isdone ()) {// Если вы не закончили нажать
System.out.println (it.currentitem (). ToString ());
it.next ();
}
}
public static void main (String agrs []) {
Тест -тест = новый тест ();
test.operation ();
}
}
6. Описание :
A: Определение: шаблон итератора может получить доступ к агрегированному элементу в последовательности, не подвергая внутренней ситуации агрегата.
Б: В этом примере учитель дает интерфейс для создания объекта итератора, и итератор определяет интерфейс, необходимый для прохождения посещаемости учащихся.
C: Преимущество режима итератора состоит в том, что при изменении в объекте (ConceteTeacher), например, новые ученики добавляются в набор посещаемости одноклассников, или меньше одноклассников уменьшается, это изменение не влияет на клиент.