Sobes.tech
Junior — Middle

Observer tasarım desenini nasıl uygularsın?

sobes.tech yapay zeka

AI'dan gelen yanıt

Observer tasarım deseni, gözlemci nesnelerin başka bir nesnenin (öznenin) olaylara veya durum değişikliklerine abone olmasını düzenlemek için kullanılır. iOS'ta, protokoller ve delegeler, NotificationCenter veya kendi uygulamanız gibi birkaç farklı şekilde uygulanabilir.

Basit bir protokol kullanarak uygulama örneği:

protocol Observer: AnyObject {
    func update(data: String)
}

class Subject {
    private var observers = [Observer]()
    private var state: String = ""

    func attach(observer: Observer) {
        observers.append(observer)
    }

    func detach(observer: Observer) {
        observers.removeAll { $0 === observer }
    }

    func setState(_ newState: String) {
        state = newState
        notify()
    }

    private func notify() {
        for observer in observers {
            observer.update(data: state)
        }
    }
}

class ConcreteObserver: Observer {
    func update(data: String) {
        print("Observer received update: \(data)")
    }
}

// Kullanım:
let subject = Subject()
let observer1 = ConcreteObserver()
subject.attach(observer: observer1)
subject.setState("Yeni durum")

Bu yaklaşım, nesnelerin birbirleriyle sıkı bağlı olmadan değişiklikler hakkında bildirim almasını sağlar.