Junior — Middle
Observer nümunəsindən istifadə edərək eyni zamanda bir neçə obyektə bildiriş mexanizmi həyata keçirmək mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Bəli, Observer nümunəsi, subyektin vəziyyətindəki dəyişikliklər barədə bir neçə obyekti xəbərdar etmək üçün xüsusi olaraq hazırlanmışdır. Bu nümunədə, hadisələrə abunə olan müşahidəçilərin (obyektlərin) siyahısını saxlayan subyekt obyekti var. Subyektin vəziyyəti dəyişəndə, o, ardıcıl olaraq bütün abunəçilərə xəbərdarlıq edir.
Swift-də nümunə:
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() {
// vəziyyətin dəyişməsi
notify() // hamısına xəbərdarlıq
}
}
class ConcreteObserver: Observer {
func update() {
print("Xəbərdarlıq alındı")
}
}
let subject = Subject()
let observer1 = ConcreteObserver()
let observer2 = ConcreteObserver()
subject.attach(observer1)
subject.attach(observer2)
subject.changeState() // hər iki müşahidəçi xəbərdarlıq alacaq
Beləliklə, Observer nümunəsi çoxsaylı xəbərdarlıq mexanizmini həyata keçirməyə imkan verir.