责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象能够处理它为止。
角色:
- 抽象处理者
- 具体处理者
- 客户端
from abc import ABCMeta,abstractmethod class Manager(metaclass=ABCMeta): @abstractmethod def run(self): pass class GroupManager(Manager): def __init__(self): self.next = DepartManager() def run(self,day): if day<=3: print('组长审批%d天'%day) else: print('组长权限不够') self.next.run(day) class DepartManager(Manager): def __init__(self): self.next = CTO() def run(self,day): if day<=5: print('部门经理审批%d天'%day) else: print('部门经理权限不够') self.next.run(day) class CTO(Manager): def run(self,day): if day<=10: print('CTO审批%d天'%day) else: print('CTO不同意审批') h = GroupManager() h.run(6)
组长权限不够
部门经理权限不够
CTO审批6天