Observer Design Pattern
Nedir Bu Observer Design Pattern?
Bir nesnenin durumu değiştiğinde bağımlılarına bildirme ve güncelleme işlemini gerçekleştiren bir örüntüdür.
Örnek olarak kodumuzla ilişkili olması açısından alışveriş sitesindeki ürünlerden örnek vereceğim.
Mesela bir alışveriş sitesinden iphone 7 almak isteyelim.
Fakat sitede bu ürün geçici olarak temin edilemiyor olsun.
Biz ürün temin edildiğinde bildirim almak istiyoruz.
İşte tam bu durumda observer design pattern ortaya çıkıyor.
Yukarıda observer(gözlemci) interface tanımladık.
update methodu ilgili ürünün güncellemelerini yayınlamamızı sağlayacaktır.
Subject interface’ i duyurumuzda bulunacak müşterileri temsil etmektedir.
Üründen haber alıp/almaması durumları için.
Product sınıfı Subject interface implement ederek özelleştiriyoruz.
Gerekli ürün adı, ürün durumu, ürünlerin bildirimi, ürünlere müşteri eklemek/silmek gibi işlemleri Product sınıfı üzerinden yönetiyoruz.
Yukarıda Customer sınıfını tanımladık burada farketmemiz gereken şey Observer sınıfını implement ediyor oluşudur.
Yani bu Customer sınıfımız artık bir gözlemci olmuştur.
Eğer üründen bildirim almak istiyorsa ürün bildirimleri kendisine iletilecektir.
Ve bu yaptıklarımızı tetikleyecek Main sınıfını yazdık.
Burayı kısa olarak açıklamak gerekirse,
2 tane müşteri oluşturuyoruz ve iphone7 ürünü sisteme girdiğinde haber almak istiyorlar.
iphone7 ürünü geldiğinde customer1 ve customer2'ye bildirim gidiyor.
Daha sonra customer1 haber almaktan vazgeçiyor ve ürün tekrar geldiğinde sadece customer2 bildirim almış oluyor.
Github : Observer Design Pattern