行为型模式
--- 责任链模式 ---
内容:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止角色:1. 抽象处理者 (Handler)2. 具体处理者 (Concrete Handler)3. 客户端 (Client)适用场景:1. 有多个对象可以处理一个请求,哪个对象处理由运行时决定2. 在不明确接收者的情况下,向多个对象中的一个提交一个请求优点:1. 降低耦合度:一个对象无需知道是其他哪个对象处理其请求
from abc import ABCMeta, abstractmethodclass Handler(metaclass=ABCMeta):"""抽象处理者 (Handler)"""@abstractmethoddef handle_leave(self, day):passclass GeneralManager(Handler):def handle_leave(self, day):if day <= 10:print(f'总经理准假 {day} 天!')else:print('你还是辞职吧!')class DepartmentManager(Handler):def __init__(self):# 放一个总经理对象self.next = GeneralManager()def handle_leave(self, day):if day <= 5:print(f'部门经理准假 {day} 天!')else:print('部门经理职权不足!')self.next.handle_leave(day)class ProjectDirector(Handler):def __init__(self):# 放一个部门经理对象,职权不足则往上走self.next = DepartmentManager()def handle_leave(self, day):if day <= 3:print(f'项目主管准假 {day} 天!')else:print('项目主管职权不足!')self.next.handle_leave(day)# --- Client ---
day = 7
h = ProjectDirector()
h.handle_leave(day)

4.13_chain_of_responsibility_行为型模式:责任链模式相关推荐

  1. Java设计模式之行为型:责任链模式

    背景: 学校规定参加校招的同学必须要请假,且要有相关人员的签字,三天以下需辅导员签字.三到七天需要系主任签字,一个星期以上需要院长签字,更多的则需要校长签字! 上图将学生.辅导员.系主任.院长.校长组 ...

  2. 设计模式-行为型模式-责任链模式

    设计模式-行为型模式-责任链模式 定义 将请求沿着链传递,然后直到对象处理即可. UML图 代码 基本的责任链 public class Test{public void test(int i, Re ...

  3. 设计模式 — 行为型模式 — 责任链模式

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

  4. 【设计模式系列】行为型之责任链模式

    目录 背景 理论 实践 总结 背景 责任链模式,小编在自己项目迭代过程也参与了维护和设计实现:本篇博文主要针对该设计模型进行总结和实践: 简单举例日常生活或者工作中能够接触的责任链模式场景:采购审批流 ...

  5. 设计模式(四)责任链模式——责任链模式结构

    定义 责任链是行为型设计模式的一种,通过前一个处理者记录下一个处理者的方式形成一条处理链.客户端在调用时只需要将请求传递到责任上即可,无需关注链路中的具体的传递过程.而链路中内部的处理,是按照前一个处 ...

  6. 【深入设计模式】责任链模式—责任链模式及责任链模式在源码中的应用

    文章目录 1. 责任链模式 1.1 责任链模式简介 1.2 责任链模式结构 1.3 责任链模式示例 2. 责任链模式在源码中的应用 2.1 Servlet 中的责任链模式 2.2 Spring 中的责 ...

  7. 设计模式-职责链模式(责任链模式)

    职责链模式 将一系列类似却职责不全相同的对象 像链表一样 链接起来,当有一个请求,需要找能处理请求的处理对象,针对每一个请求如果都需要记住能处理它的对象是非常麻烦的,于是可以通过这条职责链,一路暴力寻 ...

  8. 浅谈模式 - 责任链模式

    过滤器链,拦截器链 public interface IHandler {boolean doIt(); } public class Handler1 implements IHandler {@O ...

  9. 设计模式——行为型模式之责任链模式(简简单单入门责任链,理解I/O流消息怎么逐步传递处理以及服务器框架转发)

    文章目录 前言 一.责任链模式定义 二.责任链模式结构 三.责任链高级应用 四.责任链模式优缺点 设计模式系列文章 结尾 前言 作者更有一系列设计模式文章(还在持续更新),图例丰富,少量代码,适合入门 ...

最新文章

  1. 我们工作到底为了什么(坚持全篇看完你将受益匪浅)(转)
  2. centos 6.4 postfix mysql_postfix+dovecot+mysql+extmail安装笔记(基于CentOS 6)
  3. 计算机启动过程详解二
  4. OpenCV油画效果
  5. 开发每个静态网站是的模版代码(自己开发是长期优化过的觉得最简的代码)
  6. UVa11882,Biggest Number
  7. S3C2440之MMU
  8. ubuntu8.10下mplayer+win32codecs+Coreavc编译安装详解
  9. 笔记本安装 ubuntu 触摸板失灵
  10. 4.3检测CSRF漏洞
  11. GCA matting(2020, trimap)
  12. 计算3个地理坐标点之间的夹角
  13. UML软件建模技术-基于IBM RSA工具的基础实训
  14. SVAC国家标准介绍
  15. CS4398音频解码替代芯片DP4398完全兼容DAC解码
  16. Dubbo源码解析-——服务引用
  17. 小文聊天机器人(jquery.chatbot.js)使用指南
  18. 如何在三个月内获得三年的工作经验(转载)
  19. mysql .xb文件恢复
  20. excel画图的tips

热门文章

  1. JDK8新特性LocalDate、LocalTime和LocalDateTime
  2. java 套接字 访问tcp_Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
  3. llinux文本三剑客之grep、egrep及相应的正则表达式和用法
  4. oracle rman备份 归档模式,Oracle RMAN备份归档与非归档模式
  5. mysql唯一性约束冲突_如何解决逻辑删除与数据库唯一约束冲突
  6. Java Integer.compareTo()比较大小
  7. python 同步event对象
  8. THINKPHP3文件缓存管理
  9. 懒加载、瀑布流和LightBox实现图片搜索效果
  10. 云栖日报丨收购中天微,阿里芯了解一下!