Observer pattern
Key 1: Spreading information to all listeners.
This is the basic pattern in which an object tells other objects about something interesting. It is very useful in GUI applications, pub/sub applications, and those applications where we need to notify a lot of loosely-coupled application components about a change occurring at one source node. In the following code, Subject
is the object to which other objects register themselves for events via register_observer
. The observer
objects are the listening objects. The observers
start observing the function that registers the observers
object to Subject
object. Whenever there is an event to Subject
it cascades the event to all observers
:
import weakref class Subject(object): """Provider of notifications to other objects """ def __init__(self, name): self.name = name self._observers = weakref.WeakSet() def register_observer(self, observer): """...