设计模式(Python语言)----责任链模式

网友投稿 342 2022-08-23


设计模式(Python语言)----责任链模式

更多信息请参考 【设计模式】

责任链模式内容

使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止

责任链模式中的角色

抽象处理者(Handler)具体处理者(ConcreteHandler)客户端(Client)

责任链模式使用场景

有多个对象可以处理一个请求,那个对象处理由运行时决定在不明确接受者的情况下,向多个对象中的一个提交一个请求

责任链模式的优点

降低耦合度,一个对象无需知道是其他哪个对象处理其请求

责任链模式实例

代码如下:

from abc import ABCMeta,abstractmethodclass Handler(metaclass=ABCMeta): @abstractmethod def handler_leave(self,day): passclass GeneralManager(Handler): def handler_leave(self,day): if day<10: print(f"总经理批准假{day}天") else: print("你还是辞职吧")class DepartmentMananger(Handler): def __init__(self): self.next=GeneralManager() def handler_leave(self,day): if day<=5: print(f"部门经理批准假{day}天") else: print("部门经理权限不足") self.next.handler_leave(day)class ProjectDirector(Handler): def __init__(self): self.next=DepartmentMananger() def handler_leave(self,day): if day<=3: print(f"项目主管批准假{day}天") else: print("项目主管权限不足") self.next.handler_leave(day)if __name__=="__main__": h=ProjectDirector() print("请假2天时") h.handler_leave(2) print("请假4天时") h.handler_leave(4) print("请假8天时") h.handler_leave(8) print("请假15天时") h.handler_leave(15)

执行结果如下:

请假2天时项目主管批准假2天请假4天时项目主管权限不足部门经理批准假4天请假8天时项目主管权限不足部门经理权限不足总经理批准假8天请假15天时项目主管权限不足部门经理权限不足你还是辞职吧


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python实战技巧(9)Python发送邮件(python实现发送邮件)
下一篇:SpringBoot实现多数据源的切换实践
相关文章

 发表评论

暂时没有评论,来抢沙发吧~