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.