您的位置:首页 > 编程语言 > Python开发

python设计模式(责任链模式)

2017-11-06 16:34 375 查看

学习版本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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 设计模式