Örnek

Basit Bir Observer Örneği

Bir Person sınıfı yapalım ve değerler değiştiği zaman bildirim yapsın.
import java.util.Observable;
 
public class Person extends Observable {
 
              private String name;
              private String surname;
 
              public Person(String name, String surname) {
                            this.name=name;
                            this.surname=surname;
              }
 
              public String getName() {
                            return name;
              }
 
              public void setName(String name) {
                            this.name = name;
                            setChanged();
                            notifyObservers("surname");
              }
 
              public String getSurname() {
                            return surname;
              }
 
              public void setSurname(String surname) {
                            this.surname = surname;
                            setChanged();
                            notifyObservers("name");
              }
 
}
Person sınıfı Observable sınıfından türetilmiştir. Bu bildirim yapabileceği anlamına gelmektedir. setName ve setSurname çağrıldığında setChanged ile değişiklik yapıldığı bildirilir. notifyObservers ile de dinleyen sınıfların metotları çağrılacaktır. Değişiklikleri dinleyen sınıf yapalım :
import java.util.Observable;
import java.util.Observer;
 
public class PersonObserver implements Observer{
 
              @Override
              public void update(Observable o, Object arg) {
                           
                            System.out.println("updated..");
                           
                            if(o instanceof Person){
                                         
                                          Person p=(Person)o;
                                         
                                          System.out.println("arg:"+arg+" - "+ p.getName() + " " + p.getSurname());
                                         
                            }
                           
              }
             
              public static void main(String[] args) {
                           
                            Person p=new Person("Katip", "Çelebi");
                           
                            PersonObserver personObserver=new PersonObserver();
                           
                            p.addObserver(personObserver);
                           
                            p.setName("Evliya");
                           
              }
 
}
PersonObserver , bir sınıfı dinleyebilmesi için Observer interface'sini implement etmesi gerekir. update(Observable o, Object arg) metodu doldurulmuştur. Test amacıyla main yapıp gerekli kod yazılmıştır. Uygulama çalıştırıldığında aşağıdaki gibi çıktı gözükecektir : updated.. arg:surname - Evliya Çelebi Önce Person sonra da PersonObserver sınıfı yaratılmıştır. Person sınıfına dinleyici olarak personObserver nesnesi verilmiştir. Person nesnesinin adı değiştirildiği an update metodu çağrılacaktır.
zafer.teker , 06.01.2017

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir