-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpython_observer.py
More file actions
29 lines (24 loc) · 943 Bytes
/
python_observer.py
File metadata and controls
29 lines (24 loc) · 943 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Mailbox:
def __init__(self, ownersName):
self.owner = ownersName
self.messages = []
self.newMessageObservers = []
def deliverMessage(self, message):
self.messages.append(message)
for notifyNewMessage in self.newMessageObservers:
notifyNewMessage(message,self.owner)
def subscribe(self, observer):
self.newMessageObservers.append(observer)
class MailboxObserver:
def __init__(self, observerName):
self.name = observerName
def newMessageHandler(self, contents, owner):
print self.name + " observed a new message in "+\
owner+"'s mailbox'"
print "The message said: "+ contents
alice = MailboxObserver("alice")
bob = MailboxObserver("bob");
alicesMailbox = Mailbox("alice")
alicesMailbox.subscribe(bob.newMessageHandler)
alicesMailbox.subscribe(alice.newMessageHandler)
alicesMailbox.deliverMessage("Hello, world!")