Finishes first version of Observer. To be modified to fir with Facemovie

This commit is contained in:
2012-07-19 08:11:37 +02:00
parent e548f494a9
commit a0470c84a1
4 changed files with 95 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.pyc

View File

@@ -0,0 +1,54 @@
#!/usr/bin/env python
import Observer
class Observable():
"""
"""
def __init__(self):
"""
"""
self.val = 1
self.obs_collection = []
def subscribe(self, observer):
"""
"""
try:
if not(observer in self.obs_collection):
self.obs_collection.append(observer)
print "%s added to collection" %(str(observer))
else:
print "%s already in collection" %(str(observer))
except TypeError:
print "Failed to add %s" %(str(observer))
def unsubscribe(self, observer):
"""
"""
try:
if observer in self.obs_collection:
self.obs_collection.remove(observer)
print "%s removed from collection" %(str(observer))
else:
print "%s not in collection" %(str(observer))
except TypeError:
print "Failed to remove %s" %(str(observer))
def notify(self, message):
"""
"""
for observer in self.obs_collection:
print "sent %s to %s" %(message, str(observer))
observer.update(message)
def set_val(self, val=1):
"""
"""
self.val += val
self.notify(str(self.val))

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env python
class Observer():
"""
"""
def __init__(self, name="bob"):
"""
"""
self.name = name
def update(self, message):
"""
"""
if message is not None:
print "%s received %s" %(self.name, message)
def __str__(self):
return self.name

20
test.py Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env python
from Observer import Observer
from Observable import Observable
a = Observer("riri")
b = Observer("fifi")
c = Observer("loulou")
d = Observable()
d.subscribe(a)
d.subscribe(b)
d.subscribe(b)
d.subscribe(c)
d.unsubscribe(b)
d.set_val(3)
d.set_val()