Observer Deseni Nedir?
İngilizce: Observer Pattern
Observer deseni, bir nesnenin durumu değiştiğinde bağlı tüm gözlemcilerin otomatik bilgilendirildiği olay tabanlı tasarım desenidir.
Observer Deseni Nedir?
Observer deseni, bir nesnenin durum değişikliğini ona abone olan diğer nesnelere otomatik bildirdiği davranışsal tasarım desenidir. Durumu tutan nesne genellikle “subject” veya “publisher”, değişiklikten haberdar olanlar ise “observer” veya “subscriber” olarak adlandırılır.
Bu desen, nesneler arasındaki bağımlılığı azaltır: subject, hangi gözlemcinin bildirimi nasıl işleyeceğini bilmek zorunda kalmaz. Sadece değişikliği duyurur; e-posta göndermek, ekranı güncellemek veya cache temizlemek gibi işler abonelerin sorumluluğunda kalır.
Nasıl Çalışır?
- Observer arayüzü
updatebenzeri bir metot tanımlar. - Subject, observer listesini tutar ve abone olma/abonelikten çıkma metotları sağlar.
- Subject’in durumu değiştiğinde listedeki observer’lara bildirim gönderilir.
- Her observer gelen bildirimi kendi ihtiyacına göre işler.
Frontend state yönetimi, DOM olayları, mesajlaşma sistemleri, domain event dinleyicileri ve bildirim altyapıları bu fikrin farklı biçimlerini kullanır. JavaScript’teki event listener modeli, Observer desenine yakın günlük bir örnektir.
İş Dünyasında Kullanımı
Bir siparişin durumu “kargoya verildi” olduğunda müşteriye SMS gönderilmesi, stok hareketinin raporlama sistemine yansıması ve muhasebe kaydının tetiklenmesi tek bir olay üzerinden yürütülebilir. Bu yapı, sipariş modülünü her entegrasyonun ayrıntısını bilmekten kurtarır.
Observer deseni, tasarım deseni ailesinin temel örneklerinden biridir ve event-driven mimarilerle aynı düşünceyi paylaşır. Aşırı kullanıldığında olay zincirlerini takip etmek zorlaşabileceği için izleme, hata yakalama ve abonelik temizliği ihmal edilmemelidir.