mirror of
https://github.com/jlengrand/Observer.git
synced 2026-03-10 08:31:23 +00:00
Finishes first version of Observer. To be modified to fir with Facemovie
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.pyc
|
||||
@@ -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))
|
||||
|
||||
20
Observer.py
20
Observer.py
@@ -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
20
test.py
Executable 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()
|
||||
Reference in New Issue
Block a user