Setelah belajar selama bertahun -tahun, saya menemukan masalah. Makan dengan baik dan tidur dengan baik.
Oke, mari kita lihat bagaimana proses penamaan guru diimplementasikan:
1. Seperti biasa , mari kita tentukan kelas antarmuka guru pertama -tama:
Salinan kode adalah sebagai berikut:
guru antarmuka publik {
Public Iterator CreateIterator ();
}
2. Kelas guru (Concreteteacher) spesifik adalah implementasi antarmuka guru (guru):
Salinan kode adalah sebagai berikut:
Concreteteacher kelas publik mengimplementasikan guru {
objek pribadi [] present = {"Zhang San ada di sini", "Li Si ada di sini", "Wang Wu tidak ada di sini"};
Iterator Publik createIterator () {
mengembalikan concreeteiterator baru (ini);
}
GetElement Objek Publik (INT INDEX) {// Dapatkan kehadiran teman sekelas saat ini
if (index <present.length) {
return present [index];
}
kalau tidak{
kembali nol;
}
}
public int getSize () {
return present.length; // Dapatkan ukuran set kehadiran kelas, yaitu, Anda perlu tahu berapa banyak orang yang ada di kelas.
}
}
3. Tentukan kelas antarmuka Iterator:
Salinan kode adalah sebagai berikut:
Iterator Antarmuka Publik {
batal pertama (); // yang pertama
void next ();
Boolean Isdone (); // adalah nama selesai
Object CurrentItem (); // Kehadiran teman sekelas saat ini
}
4. Kelas konkreteiterator spesifik adalah implementasi antarmuka iterator:
Salinan kode adalah sebagai berikut:
CONCRETEITERATOR KELAS PUBLIK mengimplementasikan Iterator {
guru concreteteacher swasta;
indeks int pribadi = 0;
Ukuran int pribadi = 0;
Public Concreteiterator (Concreteteacher Teacher) {
this.teacher = guru;
size = Teacher.getSize ();
indeks = 0;
}
public void first () {//
indeks = 0;
}
public void next () {// Next
if (index <size) {
indeks ++;
}
}
public boolean isDone () {// adalah namanya selesai
return (index> = size);
}
Objek Publik CurrentItem () {// Kehadiran teman sekelas saat ini
return Teacher.getElement (index);
}
}
5. Tulis kelas tes :
Salinan kode adalah sebagai berikut:
tes kelas publik {
iterator pribadi itu;
guru guru pribadi = concreteteacher baru ();
Operasi public void () {
It = Teacher.CreateIterator (); // Guru mulai menelepon
while (! it.isdone ()) {// jika Anda belum selesai mengklik
System.out.println (It.CurrentItem (). ToString ());
it.next ();
}
}
public static void main (string agrs []) {
Tes tes = tes baru ();
test.Operation ();
}
}
6. Deskripsi :
A: Definisi: Pola iterator dapat mengakses elemen agregat secara berurutan tanpa mengekspos situasi internal agregat.
B: Dalam contoh ini, guru memberikan antarmuka untuk membuat objek Iterator, dan Iterator mendefinisikan antarmuka yang diperlukan untuk melintasi kehadiran siswa.
C: Keuntungan dari mode iterator adalah bahwa ketika ada perubahan dalam objek (Concreteteacher), seperti siswa baru ditambahkan ke set kehadiran teman sekelas, atau lebih sedikit teman sekelas dikurangi, perubahan ini tidak berpengaruh pada klien.