Skip to content

Instantly share code, notes, and snippets.

@larry852
Created September 29, 2019 20:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save larry852/3945ad72795fab6ddf394e1ab5bf8244 to your computer and use it in GitHub Desktop.
Save larry852/3945ad72795fab6ddf394e1ab5bf8244 to your computer and use it in GitHub Desktop.
Observer pattern
class Subscriber:
def __init__(self):
self._observers = []
def subscribe(self, observer):
if not observer in self._observers:
self._observers.append(observer)
def unsubscribe(self, observer):
try:
self._observers.remove(observer)
except ValueError:
pass
def notify(self):
observer.notify() for observer in self._observers
class User(Subscriber):
def save(self, data):
self.data = data
self.notify()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment