随笔 - 139  文章 - 0 评论 - 0 阅读 - 33724
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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

角色:

  • 抽象处理者
  • 具体处理者
  • 客户端
复制代码
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天

posted on   longfei2021  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示