Junior — Middle
Observer deseniği kullanarak aynı anda birden fazla nesneye bildirim mekanizması uygulanabilir mi?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, Observer deseni, nesnenin durumundaki değişiklikler hakkında birden fazla nesneyi bilgilendirmek için tasarlanmıştır. Bu desende, olaylara abone olan gözlemcilerin (nesnelerin) listesini tutan bir nesne-nesne vardır. Nesne durumu değiştiğinde, sırasıyla tüm abone olanlara bildirimde bulunur.
Swift'te örnek:
protocol Observer {
func update()
}
class Subject {
private var observers = [Observer]()
func attach(_ observer: Observer) {
observers.append(observer)
}
func notify() {
observers.forEach { $0.update() }
}
func changeState() {
// durum değişikliği
notify() // hepsine bildirim
}
}
class ConcreteObserver: Observer {
func update() {
print("Bildirim alındı")
}
}
let subject = Subject()
let observer1 = ConcreteObserver()
let observer2 = ConcreteObserver()
subject.attach(observer1)
subject.attach(observer2)
subject.changeState() // her iki gözlemci de bildirim alır
Bu şekilde, Observer deseni, çoklu bildirim mekanizmasını uygulamayı sağlar.