Sobes.tech
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.