Design Pattern (Iterator Pattern)

Kalo bicara mengenai pattern kayaknya patern Iterator juga cukup penting. Iterator pattern sesuai namanya berfungsi untuk melakukan iterasi atau mengakses objek-objek yang ada pada sebuah collection (array, vector, arraylist,etc).

Untuk mengakses objek- objek yang ada dalam Collection aplikasi Client hanya perlu menggunakan objek Iterator tersebut. berikut ini contohnya:

public interface DVDListIterator {
public void first();
public void next();
public void previous();
public void last();
public boolean isDone();
public String getCurrentItem();
}
import java.util.ArrayList;
public class DVDList {
private ArrayList dvd = new ArrayList();
public DVDList(){}
public void add(String film){
dvd.add(film);
}
public void delete(String film){
dvd.remove(film);
}
public DVDListIterator createIterator(){
return new Iterator();
}
private class Iterator implements DVDListIterator{
private int currentPosition = 0;
public void first() {
currentPosition = 0;
}
public void next() {
if(currentPosition0)
--currentPosition;
}
public void last() {
currentPosition=dvd.size()-1;
}
public boolean isDone() {
if(currentPosition>=dvd.size()-1)return true;
else return false;
}
public String getCurrentItem() {
return dvd.get(currentPosition).toString();
}
}
}
public class Tester {
public static void main(String[] args) {
DVDList dvdList = new DVDList();
dvdList.add("Superman");
dvdList.add("Batman");
dvdList.add("Spiderman");
dvdList.add("X-Man");
dvdList.add("Robo Cop");
DVDListIterator iterator = dvdList.createIterator();
System.out.println(iterator.getCurrentItem());
iterator.next();
System.out.println(iterator.getCurrentItem());
iterator.next();
System.out.println(iterator.getCurrentItem());
iterator.previous();
System.out.println(iterator.getCurrentItem());
iterator.first();
System.out.println(iterator.getCurrentItem());
iterator.last();
System.out.println(iterator.getCurrentItem());
dvdList.delete("Robo Cop");
iterator.last();
System.out.println(iterator.getCurrentItem());
}

}

biar Iteratornya reusable atau dapat digunakan untuk objek Collection yang lain, kita bisa tambahkan seter method pada class DVDList di atas..

2 Responses to Design Pattern (Iterator Pattern)

  1. joni says:

    numpang tanya..
    jadi sebenernya masalah yang diselesaikan dengan memakai iterator pattern itu apa ya? saya masih kurang mengerti..
    dan kelebihan dari aplikasi yang memakai design pattern ini dengan yang tidak sama sekali memakai pattern itu apa?

    terima kasih..

  2. Hendro Steven says:

    Ini nih kelebihan kalo kita pake iterator pattern “The Iterator pattern is one, which allows you to navigate through a collection of data using a common interface without knowing about the underlying implementation.”
    sebenarnya kelebihan sebuah aplikasi pake design pattern hanya pada efisiensi dari sisi code program dan ada kemungkinan efisiensi dari resource yang digunakan program. Misalnya kalo pake iterator pattern maka setiap kita akan membuat tombol prev,next, top, atau bottom kita gak perlu membuat fungsi2 baru lagi tinggal gunakan aja interface iterator patternanya.. nah ini udah menghemat jumlah code program yang dibuat.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: