监听模式
又名观察者模式、发布/订阅模式、源-监听器(Source/Listener)模式,模式的核心是:设计时要区分谁是被观察者,谁是观察者。被观察者至少有三个方法,添加观察者、删除观察者、监听目标变化并通知观察者;观察者这至少包含一个方法,当接收到被观察者的通知时,做出相应的处理(即在被观察者的监听中调用)。
模式框架
'''
观察者模式
'''
class Observable(object):
'''
被监听的对象,实现类需要具体增加被监听的资源
'''
def __init__(self):
self.__observers = []
@property
def observers(self):
return self.__observers
def has_observer(self):
return False if not self.__observers else True
def add_observer(self, observer):
self.__observers.append(observer)
def remove_observer(self, observer):
self.__observers.remove(observer)
def listener(self, obj=None):
for observer in self.__observers:
observer.update(self, obj)
c