23种设计模式介绍(Python示例讲解)(25)
2023-04-30 来源:飞速影视
3、客户端创建处理器对象的链:
handler1 = ConcreteHandler1()handler2 = ConcreteHandler2()handler3 = ConcreteHandler3()handler1.set_next(handler2).set_next(handler3)# 发送请求requests = ["request1", "request2", "request3", "request4"]for request in requests: response = handler1.handle(request) if response: print(response) else: print(f"{request} was not handled")
代码讲解:
上面的示例中,我们定义了一个处理器接口 Handler,其中包含 set_next 和 handle 方法。我们还定义了一个抽象处理器类 AbstractHandler,它实现了 set_next 和 handle 方法,其中 handle 方法调用了下一个处理器对象的 handle 方法。我们还实现了三个具体的处理器类 ConcreteHandler1、ConcreteHandler2 和 ConcreteHandler3,它们分别实现了自己的 handle 方法。客户端创建处理器对象的链,将处理器对象按照需要连接起来,然后将请求发送给链的第一个处理器对象,处理器对象将请求进行处理或者将请求传递给下一个处理器对象,直到请求被处理或者没有处理器对象能够处理请求。在这个例子中,当请求为 "request1"、"request2"、"request3" 时,请求会被相应的处理器对象处理;
当请求为 "request4" 时,没有处理器对象能够处理该请求,因此该请求未被处理。
总的来说,职责链模式可以使多个对象都有机会处理请求,并且可以灵活地配置处理器对象的顺序和组合,从而提高系统的灵活性和可扩展性。
2、命令模式(Command)
命令模式(Command)是一种行为型设计模式,它将请求封装成一个对象,从而使您可以将不同的请求与其请求的接收者分开。这种模式的目的是通过将请求发送者和请求接收者解耦来实现请求的发送、执行和撤销等操作。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号