Junior — Middle
Омӯзиши Observer метавонад механизмҳои огоҳӣ барои чанд объектро ҳамзамон амалӣ созад?
sobes.tech AI
Ҷавоб аз AI
Бале, намунаи Observer махсус барои огоҳ кардани чанд объект дар бораи тағироти ҳолати субъект пешбинӣ шудааст. Дар ин намуна, объект-ҳуқуқи субъект, ки рӯйхати назоратчиён (объектҳо) ки ба рӯйдодҳои он обуна шудаанд, нигоҳ медорад. Вақте ки ҳолати субъект тағир меёбад, он ба таври пайдарпай ҳамаи обунаҳоро огоҳ мекунад.
Масалан дар Swift:
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() {
// тағироти ҳолат
notify() // ҳама огоҳ карда мешаванд
}
}
class ConcreteObserver: Observer {
func update() {
print("Огоҳӣ гирифта шуд")
}
}
let subject = Subject()
let observer1 = ConcreteObserver()
let observer2 = ConcreteObserver()
subject.attach(observer1)
subject.attach(observer2)
subject.changeState() // ҳарду назоратчӣ огоҳӣ мегиранд
Ин тариқ, намунаи Observer имкон медиҳад, ки механизмҳои огоҳии бисёрро амалӣ кунад.