Python中详解的责任链设计模式

  介绍

详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中详解的责任链设计模式