• [python3] 责任链模式


    责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。请求沿着链传递,直到有一个对象处理它为止。

    下面是一个简单的 Python 3 代码示例来演示责任链模式:

    # 定义处理请求的抽象类
    class Handler:
        def __init__(self, successor=None):
            self.successor = successor
    
        def handle_request(self, request):
            if self.successor:
                self.successor.handle_request(request)
    
    # 具体处理请求的类
    class ConcreteHandler1(Handler):
        def handle_request(self, request):
            if request == 1:
                print("ConcreteHandler1 处理请求")
            else:
                super().handle_request(request)
    
    class ConcreteHandler2(Handler):
        def handle_request(self, request):
            if request == 2:
                print("ConcreteHandler2 处理请求")
            else:
                super().handle_request(request)
    
    # 客户端代码
    if __name__ == "__main__":
        handler1 = ConcreteHandler1()
        handler2 = ConcreteHandler2(handler1)
    
        handler2.handle_request(1)  # 输出:ConcreteHandler1 处理请求
        handler2.handle_request(2)  # 输出:ConcreteHandler2 处理请求
        handler2.handle_request(3)  # 没有符合条件的处理器,无输出
    
    • 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
    • 32

    在这个示例中,Handler 是处理请求的抽象类,具体的处理器 ConcreteHandler1ConcreteHandler2 继承自 Handler,每个处理器根据条件判断是否能够处理请求,如果不能处理,则将请求传递给下一个处理器。客户端通过组合不同的处理器形成责任链,并向第一个处理器发起请求。

  • 相关阅读:
    891. 子序列宽度之和(每日一难phase3-4)
    Hive谓词下推之FULL JOIN
    多个路径下python库导入
    有哪些常见的网络安全威胁?
    C++之模板进阶
    十八、图像像素类型转换和归一化操作
    阿里P7爆款《K8s+Jenkins》技术笔记,读了后确实有实质性的帮助
    jprofiler使用
    SpringMVC_异常统一处理
    600V IGI60F100A1L CoolGaN功率级(IGI60F100A1LAUMA1)
  • 原文地址:https://blog.csdn.net/qq_44810930/article/details/136623882