责任链模式 (场景:OA系统,项目审批...)
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
适用性:
有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。
代码示例:
流程审批,跟进需要审批的额度不同。需要的环节多少则不同
class BaseHandler(object): _superior = None '''处理基类''' def submit_to_superior(self, superior): # 向上级提交 # 设置上级处理人 self._superior = superior class RequestHandlerL1(BaseHandler): '''第一级请求处理者''' name = "TeamLeader" def handle(self,request): if request < 500 : print("审批者[%s],请求金额[%s],审批结果[审批通过]"%(self.name,request)) else: print("