广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python设计模式行为型责任链模式
  • 885
分享到

Python设计模式行为型责任链模式

2024-04-02 19:04:59 885人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一、责任链模式二、应用场景三、代码示例一、责任链模式 责任链模式,将多个处理方法连接成一条链条,请求将在这条链条上流动直到该链条中有一个节点可以处理该请求。通常这条链条是一个对象

一、责任链模式

责任链模式,将多个处理方法连接成一条链条,请求将在这条链条上流动直到该链条中有一个节点可以处理该请求。通常这条链条是一个对象包含对另一个对象的引用而形成链条,每个节点有对请求的条件,当不满足条件将传递给下一个节点处理。

责任链模式有几个要点:

  • 一个对象中含有另一个对象的引用以此类推形成链条。
  • 每个对象中应该有明确的责任划分,即处理请求的条件。
  • 链条的最后一节应该设计成通用请求处理,以免出现漏洞。
  • 请求应该传入链条的头部

二、应用场景

三、代码示例

实体角色:

  • 抽象处理者(Handler)
  • 具体处理者(Concrete Handler)
  • 客户端(Client)
import abc


# 抽象处理者
class Handler(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def handle(self, day):
        pass


# 具体处理者,作为链条节点之一。
class GeneralManager(Handler):
    def handle(self, day):
        if day <= 10:
            print(f"总经理准假{day}天")
        else:
            print("休假太长,不予准假!")


# 具体处理者,作为链条节点之一。
class DivisionManager(Handler):
    def __init__(self):
        self.next = GeneralManager()  # 链接到下一级

    def handle(self, day):
        if day <= 5:
            print(f"部门经理准假{day}天")
        else:
            print("部门经理准假职级不足")
            self.next.handle(day)


# 具体处理者,作为链条节点之一。
class ProjectManager(Handler):
    def __init__(self):
        self.next = DivisionManager()  # 链接到下一级

    def handle(self, day):
        if day <= 3:
            print(f"项目经理准假{day}天")
        else:
            print("项目经理准假职级不足")
            self.next.handle(day)


if __name__ == "__main__":
    handler = ProjectManager()
    handler.handle(4)

到此这篇关于python设计模式行为型责任链模式的文章就介绍到这了,更多相关Python责任链模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python设计模式行为型责任链模式

本文链接: https://www.lsjlt.com/news/139231.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python设计模式行为型责任链模式
    目录一、责任链模式二、应用场景三、代码示例一、责任链模式 责任链模式,将多个处理方法连接成一条链条,请求将在这条链条上流动直到该链条中有一个节点可以处理该请求。通常这条链条是一个对象...
    99+
    2022-11-13
  • PHP行为型模式之责任链模式
    目录前言责任链模式的优点责任链模式的实现责任链模式的使用总结前言 责任链模式(Chain of Responsibility Pattern)是什么? 责任链模式是一种行为型模式,它...
    99+
    2023-05-14
    PHP责任链模式 PHP行为型模式
  • .Net行为型设计模式之职责链模式(ChainofResponsibility)
    目录一、动机(Motivate)二、意图(Intent)三、结构图(Structure)四、模式的组成五、职责链模式的代码实现六、职责链模式的实现要点:1、职责链模式的主要优点有:2...
    99+
    2022-11-13
  • Java设计模式之责任链模式
    本文通过图书馆管理系统中,用户名校验、密码校验、需要增加问题,每次都要增加if判断语句,将其改用责任链模式进行链式调用,为了让代码更加的优雅,我们使用之前学过的建造者模式就代码进行改...
    99+
    2022-11-13
  • java设计模式(实战)-责任链模式
    目录一:模式说明二:项目实战三:源代码一:模式说明 模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,...
    99+
    2022-11-12
  • Java 设计模式之责任链模式及异步责任链详解
    目录一、定义二、普通责任链模式三、异步责任链模式一、定义 责任链模式(Chain of Responsibility Pattern):避免将一个请求的发送者与接受者耦合在一起,让多...
    99+
    2022-11-12
  • Java设计模式之责任链模式详解
    一、前言 各个部门协同合作完成一个任务,每个部门都有各自的职责,一个部门完成后,变回转交给下一个部门,直到所有部门都处理了,这个任务才完成。 将请求与处理解耦。 处理者只需要关注自己...
    99+
    2022-11-12
  • Java实现设计模式之责任链模式
    目录1.什么是责任链模式2.如何实现3.代码实现4.总结1.什么是责任链模式 当一个请求可能需要多个对象中的某个进行处理时,将这些对象连成一条链,并沿者这条链传递该请求,知道有一个对...
    99+
    2022-11-13
  • PHP行为型模式之责任链模式怎么实现
    本篇内容介绍了“PHP行为型模式之责任链模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言责任链模式(Chain of Resp...
    99+
    2023-07-05
  • Java设计模式之java责任链模式详解
    目录概述结构总结在本讲,我们来学习一下行为型模式里面的第四个设计模式,即责任链模式。 概述 在学习责任链模式之前,我们先来看一下下面这段描述。 在现实生活中,常常会出现这样的事例:一...
    99+
    2022-11-12
  • 每天一个设计模式之责任链模式
    作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚然,每种设计模式都有多种实现方式,但此小册只记录最直截了当的实现方式 :) 0. 项目地址 责任链模式·代码 《每天一个设...
    99+
    2023-01-31
    模式 责任
  • java设计模式中的责任链模式是什么
    本篇文章为大家展示了java设计模式中的责任链模式是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一:模式说明模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。...
    99+
    2023-06-22
  • 详解Java实现设计模式之责任链模式
    目录一、模拟业务需求二、小步小跑的迭代开发三、系统对数据的校验要求四、新建一个抽象类五、子类的实现六、构建责任链和调用七、可维护性八、总结8.1、责任链模式8.2、责任链模式适用的场...
    99+
    2022-11-12
  • 浅谈Python责任链模式
    目录介绍实现方式案例测试使用场景介绍 责任链模式是一种行为型设计模式,它允许多个对象以链式的形式依次处理请求,直到请求被处理或者无处理对象为止 实现方式 责任链模式由多个处理器组成,...
    99+
    2023-05-16
    Python 责任链模式
  • java设计模式责任链模式原理案例详解
    目录引言责任链模式定义类图角色核心示例代码1、对请求处理者的抽象2、对请求处理者的抽象3、责任链的创建责任链实现请假案例案例类图可扩展性纯与不纯的责任链模式纯的责任链模式不纯的责任链...
    99+
    2022-11-12
  • Java设计模式之责任链模式的示例详解
    目录应用场景实际代码案例无模式情况下的代码采用责任链模式优化代码采用建造者+责任链模式优化代码责任链模式优缺点责任链模式是将链中的每一个节点看做是一个对象,每个节点处理的请求均不相同...
    99+
    2022-11-13
    Java 设计模式 责任链模式 Java 责任链模式
  • JavaScript设计模式之职责链模式
    目录概述代码实现参数定义实现职责链模式实现改良概述 职责链模式是设计模式中行为型的一种设计模式; 定义:使多个对象都有机会处理请求,从而避免请求的发送者与接收者之间的耦合关系,将这些...
    99+
    2022-11-12
  • C#设计模式实现之生成器模式和责任链模式
    目录生成器设计类图: 实现代码:优点:用途与缺点:责任链设计类图:实现代码:优点:用途和缺点:总结生成器 生成器模式:封装一个产品的构造过程,并允许按步骤构造。 现又一个...
    99+
    2022-11-12
  • 设计模式之如何掌握责任链
    本篇内容主要讲解“设计模式之如何掌握责任链”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“设计模式之如何掌握责任链”吧!例子假设你也"穿越"到...
    99+
    2022-10-19
  • Java通俗易懂系列设计模式之责任链模式
    目录概述JDK中的责任链模式示例责任链设计模式示例责任链设计模式 - 基类和接口责任链模式 - 链实现责任链设计模式 - 创建链责任链设计模式类图责任链设计模式重点JDK中的责任链模...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作