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

来源:互联网 发布:sql server between 编辑:程序博客网 时间:2024/06/11 20:59

学习版本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 1complete task 2complete task 3error, there are no such department.


原创粉丝点击