How to Implement the Observer Pattern
How to Implement the Observer Pattern
How to Implement the Observer Pattern
What is the Observer pattern, and how can it be implemented in Python?
solveurit24@gmail.com Changed status to publish February 20, 2025
Observer pattern allows an object (subject) to notify its dependents (observers) of changes in its state.
Code:
class Subject:
def __init__(self):
self.observers = []
def attach(self, observer):
self.observers.append(observer)
def notify(self):
for observer in self.observers:
observer.update(self)
class Observer:
def update(self, subject):
pass
class ConcreteSubject(Subject):
def __init__(self):
super().__init__()
self._state = 0
@property
def state(self):
return self._state
@state.setter
def state(self, value):
self._state = value
self.notify()
class ConcreteObserver(Observer):
def update(self, subject):
print(f"Observer: Subject's state changed to {subject.state}")
subject = ConcreteSubject()
observer1 = ConcreteObserver()
observer2 = ConcreteObserver()
subject.attach(observer1)
subject.attach(observer2)
subject.state = 10 # Output: Observer: Subject's state changed to 10solveurit24@gmail.com Changed status to publish February 20, 2025