介绍
详Python中解的责任链设计模式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>定义:强>
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求直到有一个对象处理它为止
<强>使用场景:强>
有多个对象可以处理一个请求,哪个对象处理由时间运行时决定。在不明确接受者的情况下,向多个对象中的一个提交一个请求
<>强优点:强>
降低耦合度:一个对象无需知道是其他哪一个对象处理其请求
<强>代码例子:强>
“““ 责任链模式 “““ 从美国广播公司进口abstractmethod ABCMeta 类处理程序(元类=ABCMeta): @abstractmethod def handler_leave(自我,天): 通过 #总经理审批 类GenaralHandler(处理): def handler_leave(自我,天): 如果天& lt;=10: 打印(& # 39;总经理批准你% s天假,好好去玩吧& # 39;%的一天) 其他: 打印(& # 39;你干脆辞职了吧& # 39;) #部门经理审批 类DepartmentHandler(处理): def __init__(自我): 自我。upHandler=GenaralHandler () def handler_leave(自我,天): 如果天& lt;=7: 打印(& # 39;部门经理批准你% s天假,好好去玩吧& # 39;%的一天) 其他: 打印(& # 39;你请假超过七天,我无权受理,你去找总经理吧& # 39;) self.upHandler.handler_leave(天) #项目主管审批 类ProjectHandler(处理): def __init__(自我): 自我。upHandler=DepartmentHandler () def handler_leave(自我,天): 如果天& lt;=3: 打印(& # 39;项目主管批准你% s天假,好好去玩吧& # 39;%的一天) 其他: 打印(& # 39;你请假超过三天,我无权受理,你去找部门经理审批吧& # 39;) self.upHandler.handler_leave(天) if __name__==& # 39; __main__ # 39;: h=ProjectHandler (); h.handler_leave (5)
输出结果:
你请假超过三天,我无权受理,你去找部门经理审批吧
部门经理批准你5天假,好好去玩吧
引用>看完上述内容,你们掌握详Python中解的责任链设计模式的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
Python中详解的责任链设计模式