一.什么是责任链模式?

    责任链就是从一个起点发起请求,然后沿着任务链依次传递给每一个节点上的对象,直到有一个节点处理这个请求为止。

二.责任链模式实例实现?

 1 public abstract class ConsumeHandler {
 2     private ConsumeHandler nextHandler;
 3
 4     public ConsumeHandler getNextHandler(){
 5         return nextHandler;
 6     }
 7
 8     public void setNextHandler(ConsumeHandler nextHandler){
 9         this.nextHandler=nextHandler;
10     }
11
12     /**
13      * user申请人  free报销费用
14      */
15     public abstract void doHandler(String user,double free);
16 }
17
18 //项目经理
19 public class ProjectHandler extends ConsumeHandler {
20     @Override
21     public void doHandler(String user, double free) {
22         if (free < 500){
23             if (user.equals("lwx")){
24                 System.out.print("给予报销:"+free);
25             }else{
26                 System.out.print("报销不通过");
27             }
28         }else{
29             if (getNextHandler()!=null){
30                 getNextHandler().doHandler(user,free);
31             }
32         }
33     }
34 }
35
36 //部门经理
37 public class DeptHandler extends ConsumeHandler {
38     @Override
39     public void doHandler(String user, double free) {
40         if (free<1000){
41             if (user.equals("zy")){
42                 System.out.print("给予报销:"+free);
43             }else{
44                 System.out.println("报销不通过");
45             }
46         }else{
47             if (getNextHandler()!=null){
48                 getNextHandler().doHandler(user,free);
49             }
50         }
51     }
52 }
53
54 //总经理
55 public class GeneralHandler extends ConsumeHandler {
56     @Override
57     public void doHandler(String user, double free) {
58         if (free>=1000){
59             if (user.equals("lwxzy")) {
60                 System.out.println("给予报销:" + free);
61             } else {
62                 System.out.println("报销不通过");
63             }
64         }else{
65             if (getNextHandler()!=null){
66                 getNextHandler().doHandler(user,free);
67             }
68         }
69     }
70 }
71
72 public class ChainOfResponsibilityActivity extends AppCompatActivity {
73
74     @Override
75     protected void onCreate(Bundle savedInstanceState) {
76         super.onCreate(savedInstanceState);
77         setContentView(R.layout.activity_chain_of_responsibility);
78
79         ProjectHandler projectHandler=new ProjectHandler();
80         DeptHandler deptHandler=new DeptHandler();
81         GeneralHandler generalHandler=new GeneralHandler();
82
83         projectHandler.setNextHandler(deptHandler);
84         deptHandler.setNextHandler(generalHandler);
85
86         projectHandler.doHandler("lwx",450);
87         projectHandler.doHandler("lwx", 600);
88         projectHandler.doHandler("zy", 600);
89         projectHandler.doHandler("zy", 1500);
90         projectHandler.doHandler("lwxzy", 1500);
91     }
92 }

设计模式(五)责任链模式相关推荐

  1. 走穿java23种设计模式-15责任链模式详解

    走穿java23种设计模式-15责任链模式详解 责任链模式是一种常见的行为模式. 一.责任链模式的现实场景 习伟过生日邀请了很多朋友到KTV一起庆祝,为了增加欢乐的气氛,习伟建议大家一起玩击鼓传花的游 ...

  2. 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)

    原文:乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 责任链模式(Chain of ...

  3. php设计模式之责任链模式

    php设计模式之责任链模式 实际问题 你的论坛有举报功能,版主能解决粗口方面的举报,警察能解决严重一点的黄赌毒方面的举报,更严重的反政府的举报就需要由国安局来完成. 职场中每个人都有直属的上级,如果到 ...

  4. 轻松学习Java设计模式之责任链模式

    我们的态度是:每天进步一点点,理想终会被实现. 前言 设计模式,可能很多人都是看到代码知道怎么回事,但是离开代码再让其说出来,估计就有点含糊其词了,包括我自己在内.Android中其实用到的设计模式也 ...

  5. 手撸设计模式之-责任链模式

    手撸设计模式之-责任链模式 一 .责任链模式介绍 1.1 定义 1.2 责任链模式UML结构图 1.3 责任链模式结构详细 1.3 用例代码实现 二.责任链模式应用场景: 2.1 场景概述 2.2 场 ...

  6. 软件设计模式之责任链模式实验

    软件设计模式之责任链模式实验 一.实验目的 掌握软件责任链模式中的命令模式,能够用责任链模式编写程序,解决实际问题. 二.实验内容与要求 内容:某小学老师指定班里的三位学生收寒假作业,三位学生分别负责 ...

  7. Java设计模式之责任链模式(二)

    所有设计模式传送门 本文将一起介绍学习下设计模式之责任链模式.责任链模式是指使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有 ...

  8. Java设计模式作业-责任链模式

    Java设计模式作业-责任链模式:Web过滤器 文章目录 前言 一.类图 二.代码及测试结果 1.Trouble类 2.Support类 3.CharSupport类 4.TypeTransformS ...

  9. Java设计模式系列--责任链模式(应用)

    原文网址:Java设计模式系列--责任链模式(应用)_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Java设计模式中的责任链模式的一些使用场景. 责任链模式的好处 符合单一职责原则 每个功能 ...

  10. JAVA设计模式之责任链模式(职责链模式)

    转自JAVA设计模式之责任链模式(职责链模式)​​​​​​​ 责任链/职责链(Chain of Responsibility)模式的定义 为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理 ...

最新文章

  1. mysql mha官网下载_mysql MHA 及多主复制
  2. 一文解读苹果 M1 芯片电脑上的开源软件
  3. 6个例子让你彻底明白,什么是纳什均衡
  4. 组播基本概念、IGMP、IGMP监听学习笔记
  5. 基本权限管理框架,开通淘宝支付
  6. $http中文乱码|param乱码|angular提交后台乱码|
  7. 400集python入门到精通_2020年最强Python学习路线+教程,400集带你从入门到精通
  8. 网页服务器攻击,WEB服务器攻击分析全过程_91Ri.org
  9. mmap java_Java文件映射[Mmap]揭秘 | 学步园
  10. Window winload.efi 文件丢失解决方法
  11. 进程通信方式总结与盘点
  12. android手表密码忘了咋办,moto 360手表通过Android 5.0系统自动解锁手机教程
  13. 煤炭及煤化工加工会产生什么危废_煤化工固体废物的清洁处置
  14. 【光线追踪系列十四】蒙特卡洛积分与重要性采样
  15. 牵手华为云,云时通SRM助力企业采购数字化升级!
  16. <转>svn提示出错异常为remains in conflict
  17. c3p0-config.xml配置文件的那些事
  18. JVM_01_类加载子系统
  19. 云收藏系统|基于Springboot实现云收藏系统
  20. Java基础_107. private 关键字的使用

热门文章

  1. Spring_Boot 简单例子
  2. 欧洲打击洗钱 全球联合行动 178名钱骡落网
  3. Python学习笔记之五:类定义
  4. 安全日志的自动备份方法
  5. 去掉微软认证的WINDOWS盗版标志
  6. Web应用验证码方面总结(ASP.NET版)
  7. 工业互联网 — 5G 与 IIoT
  8. Prometheus — 安装部署(主机安装)
  9. Keystone controller.py routers.py代码解析
  10. Docker swarm 集群搭建