class RubberDuck(Quackable): def __init__(self): self.observable = Observable(self) def quack(self): print "Squeak!" self.notifyObservers() def registerObserver(self, observer): self.observable.registerObserver(observer) def notifyObservers(self): self.observable.notifyObservers() def __str__(self): return "Rubber Duck"
class MallardDuck(Quackable): def __init__(self): self.observable = Observable(self) def quack(self): print "Quack!" self.notifyObservers() def registerObserver(self, observer): self.observable.registerObserver(observer) def notifyObservers(self): self.observable.notifyObservers() def __str__(self): return "Mallard Duck"