责任链模式(Chain of Responsibility Pattern)可将请求的发送方与处理请求的接收方解耦。这样的话,某函数就不用直接调用别的函数了,而是可以把请求发送给一个由诸多接收者所组成的链条。链条中的首个接收者可以处理请求并停止责任链(也就是不再继续往下传递),也可以把请求发给下一个接收者。而第二个接收者也有这两种选择,此过程可一直延续至最后一个接收者,该接收者可将请求丢弃,也可抛出异常。
使用常规方法实现
#!/usr/bin/env python
# encoding:utf-8
class NullHandler(object):
def __init__(self, successor=None):
self.__successor = successor
def handle(self, event):
if self.__successor is not None:
self.__successor.handle(event)
class ConcreteHandler1(NullHandler):
def handle(self, event):
if event > 0 and event <= 10:
print "in handler1", event
el