Mengenal Observer Pattern

Ayah hampir setiap hari kerja pergi ke kantor di pagi hari sampai sore/maghrib, ketika sampai rumah Bunda dan Ahmad menyambut ayah dengan menjemput di pintu masuk rumah dan bersalaman. Di sore hari, Bunda dan Ahmad selalu memperhatikan kalau ada suara salam di depan pintu, kalau ayah yang salam, berarti bunda dan Ahmad akan segera bersalaman dengan ayah.

Disini status ayah observable, yang di observe oleh Bunda dan Ahmad yang menjadi Observer.


import java.util.*;

public class Ayah extends Observable implements Runnable{
	private boolean pulang = false;

	public Result kerja(){}

	public void run(){
		while (!pulang){
			kerja();
		}
		setChanged();
		notifyObservers(OlehOleh);
	}
}


public class Bunda implements Observer{
	@Override
	public void update(Observable Observable, Object data){
		if (Observable instanceof Ayah){
			jemputAyahDiPintu();
			salimDenganAyah();
			pelukAyah();
			if (data != null && data instanceof OlehOleh){
				terima(data);
			}
		}
	}
}

public class Anak implements Observer{
	@Override
	public void update(Observable Observable, Object data){
		if (Observable instanceof Ayah){
			jemputAyahDiPintu();
			salimDenganAyah();
			mintaDipangkuAyah();
			if (data != null && data instanceof OlehOleh){
				terima(data);
			}
		}
	}
}

public class Kelurga{
	public static void main(String[] args) {
		Ayah ayah = new Ayah();
		Bunda bunda = new Bunda();
		Anak ahmad = new Anak();
		ayah.addObserver(bunda);
		ayah.addObserver(ahmad);

		ayah.start();
	}
}

baca juga ini: http://en.wikipedia.org/wiki/Observer_pattern

happy coding :)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s