Junior — Middle
¿Se puede implementar un mecanismo de notificación a múltiples objetos simultáneamente usando el patrón Observer?
sobes.tech AI
Respuesta de la IA
Sí, el patrón Observer está diseñado específicamente para notificar a múltiples objetos sobre cambios en el estado del sujeto. En este patrón, hay un objeto-sujeto que mantiene una lista de observadores (objetos) suscritos a sus eventos. Cuando el estado del sujeto cambia, notifica secuencialmente a todos los suscriptores.
Ejemplo en 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() {
// cambio de estado
notify() // notificamos a todos
}
}
class ConcreteObserver: Observer {
func update() {
print("Notificación recibida")
}
}
let subject = Subject()
let observer1 = ConcreteObserver()
let observer2 = ConcreteObserver()
subject.attach(observer1)
subject.attach(observer2)
subject.changeState() // ambos observadores recibirán la notificación
De esta manera, el patrón Observer permite implementar un mecanismo de notificación múltiple.