Observer Design Pattern Kod Örneğiyle
May 5, 2022
Observer; Bir sınıfta olan değişiklikleri, duymak isteyen diğer sınıflara haber veren tasarım desenidir.
Wiki: https://en.wikipedia.org/wiki/Observer_pattern
Basitçe Anlayalım
Belki Laravel deki observerdan aklınıza gelebilir. Observera tanımlanmış olan modelin deleting, deleted veya updated gibi metotları tetiklenmiş oluyor.
Observer abonelik mekanizması olarak yorumlanıyor en basitinden baktığımızda anlamak açısından bir kişiye abone kişiler vardır ve bu kişiler abone oldukları kişideki belirlenmiş bilgilerden haberdar olurlar.
Maddelersek
- SubjectInterface abonelik ve bilgilendirme metotları belirlenir.
- Subject(Observable(İzlenebilir/Gözlemlenebilir)) ana iş sınıfıdır ve abonelikler burada yapılır.
- ObserverInterface hangi metotlardan haber almak istiyorsak belirtiriz.
- Observer(Gözlemci), Observable sınıfına üyedir ve oradaki değişikliklerden haberdar olmak için metoda sahiptir.