- Nama : Jeffry Nasri Faruki
- NRP : 5114100043
- Design Patern : Iterator
- Deskripsi
- Definisi pattern yg mendfenisikan cara untuk mengakses objek dalam koleksi objek TANPA menghiraukan representasi dari kolek si(struktur internal) objek tersebut. Koleksi objek dapat berupa list,array,tree,dsb.
- Kapan harus digunakan ? Ketika mempunyai banyak macam koleksi objek, dan harus mengimplementasikan algortma tertentu. Sebgai contoh ada sebuah program yang memiliki 4 tipe struktur data (array,binary tree,linked list,hash table) dan 3 algoritma (sort,find,merge). Tanpa pendekatan iteration pattern, membutuhkan permutasi sebanyak 4 x 3 . Dengan pendekatan iteration pattern(Generic Programming-memisahkan algoritma dengan struktur data) , hanya dibutuhkan 4 + 3 konfigurasi
- Contoh sederhana/implementasi Mencetak nama yang tersimpan dalam koleksi nama
- Gambar
- Penjelasan
- IteratorPatternDemo = Kelas utama
- NemeRepository(Turunan kelas container) = Kelas yg berisi daftar nama dan memanggil kelas iterator untuk mencetak nama-nama yang ada di daftarNama
- Iterator(Turunan kelas iterator) = Kelas yg bertanggung jawab atas navigasi objek dalam daftar nama yang ada di kelas container
- Container = Kelas yg berisi koleksi dan memanggil kelas iterator untuk mengakses tiap-tiap elemen koleksi
- Iterator = Kelas yg bertanggung jawab atas navigasi objek dalam koleksi yang ada di container
- Source Code
pastebin.com/nF4s2sPp
- Output implementasi
Name : Robert Name : John Name : Julie Name : Lora
- Contoh Penggunaan software-industri Dalam dunia nyata, design pattern iterator digunakan pada pencarian chanel di tv/radio. Pengguna hanya menekan 1 tombol untuk berpindah antar chanel tanp perlu tahu apa bentuk dari channel tersebut
- Source Code/Dokumentasi
Implementasi Navigasi chanel tv dengan Java
- Sumber
- https://sourcemaking.com/design_patterns/iterator
- http://www.oodesign.com/iterator-pattern.html
- https://www.tutorialspoint.com/design_pattern/iterator_pattern.htm
- https://dzone.com/articles/design-patterns-iterator
- https://ranjithabalaraman.wordpress.com/category/exploring-design-patterns/behavioral-pattern/iterator-pattern/