学习版本3.5.2
#学习版本3.5.2
'''在责任链模式中,多个不同职能的对象连接起来形成一条链,请求在这个链上传递,直>到链接上有一个对象将请求处理完;发这个请求的客户端并不知道链上的哪一个对象最终处
理了这个请求,这可以使得系统可以在不影响客户端的情况下动态的重新组织和分配责任'''
#1到3类请求分别需要部门a到b来处理
class Department(object):
def __init__(self, id):
self._nextdepartment = None
self.cancompletetaskid = id
def setNextDepartment(self, nextd):
self._nextdepartment = nextd
def getNextDepartment(self):
return self._nextdepartment
def completeTask(self, id):
print("complete task", id)
def getTask(self, id):
if id == self.cancompletetaskid:
self.completeTask(id)
else:
if self.getNextDepartment() == None:
print("error, there are no such department.")
else:
self.getNextDepartment().getTask(id)
if __name__ == "__main__":
da = Department(1)
db = Department(2)
dc = Department(3)
da.setNextDepartment(db)
db.setNextDepartment(dc)
da.getTask(1)
da.getTask(2)
da.getTask(3)
da.getTask(4)
运行结果
complete task 1
complete task 2
complete task 3
error, there are no such department.