博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个故事看懂责任链模式
阅读量:4230 次
发布时间:2019-05-26

本文共 1578 字,大约阅读时间需要 5 分钟。

小员工要求老板发聚餐费,各个等级的老板能够批准的额度是不一样的,上级批不了给上上级,上上级批不了给上上上级,一直往上直到最终大boss。

public abstract class Handler {    protected Handler successor;    public abstract void handleRequest(int money);    public Handler getSuccessor() {        return successor;    }    public void setSuccessor(Handler successor) {        this.successor = successor;    }}
责任链接口,每个上级还有自己的处理方法和上级boss的信息。

小boss:

public class SmallBoss extends Handler {    @Override    public void handleRequest(int money) {        if (money < 100) {            System.out.println("小于100块,哥批准了");        } else {            System.out.println("艹,这么多钱,交给我领导处理。");            getSuccessor().handleRequest(money);        }    }}
中boss:
public class MiddleBoss extends Handler {    @Override    public void handleRequest(int money) {        if (money < 500) {            System.out.println("小于500的,哥处理了");        } else {            System.out.println("哥处理不了,给我领导吧");            getSuccessor().handleRequest(money);        }    }} 大Boss
public class BigBoss extends Handler {    @Override    public void handleRequest(int money) {        if (money < 1000) {            System.out.println("我处理了,哥批准了");        } else {            System.out.println("我处理了,你明天不用来了");        }    }}
测试:
public class Main {    public static void main(String[] args) {        Handler handler = new SmallBoss();        Handler handler1 = new MiddleBoss();        Handler handler2 = new BigBoss();        handler.setSuccessor(handler1);        handler1.setSuccessor(handler2);        handler.handleRequest(13000);    }}
艹,这么多钱,交给我领导处理。哥处理不了,给我领导吧我处理了,你明天不用来了

转载地址:http://pmjqi.baihongyu.com/

你可能感兴趣的文章
(一).postman学习——前期知识准备
查看>>
qt入门级使用
查看>>
Web Stotage——本地储存详解及案例
查看>>
File Reader文件操作
查看>>
地理位置服务——navigator.geolocation
查看>>
地理位置服务——百度地图API
查看>>
js拖放事件详解及实战
查看>>
js字符串常用属性与方法
查看>>
C++递归算法案例
查看>>
C++算法——异或运算解决出现次数问题
查看>>
C++数据结构——顺序栈(基本代码实现与案例)
查看>>
C++数据结构——链队列(基本代码实现与案例)
查看>>
C++数据结构——顺序表的查找(简单顺序查找、有序表的二分查找、索引顺序的查找)
查看>>
Hive 常用统计查询语句
查看>>
对象存储产生背景、发展历史、原理架构、优缺点、应用场景及开源项目对比
查看>>
Apache Ozone 分布式对象存储系统相关文档汇总
查看>>
Ozone 与 HDDS 的区别与联系
查看>>
maven失败测试用例rerun插件使用方法
查看>>
Python基础(三)
查看>>
Python入门NLP(二)
查看>>