博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《设计模式系列》---责任链模式
阅读量:6077 次
发布时间:2019-06-20

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

hot3.png

责任链模式:是多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这个对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

/** * @author stefanie zhao * @date 2014-8-21 下午03:34:16 */public abstract class Handler {    protected Handler successor;    public void setSuccess(Handler successor) {        this.successor = successor;    }    public abstract void handleRequest(int request);}

/** * @author stefanie zhao * @date 2014-8-21 下午03:36:08 */public class ConcreteHandler1 extends Handler {    @Override    public void handleRequest(int request) {        if (request >= 0 && request < 10) {            System.out.println("0-10 处理此请求");        } else if (successor != null) {            successor.handleRequest(request);        }    }}

/** * @author stefanie zhao * @date 2014-8-21 下午03:36:08 */public class ConcreteHandler2 extends Handler {    @Override    public void handleRequest(int request) {        if (request >= 10 && request < 20) {            System.out.println("10-20 处理此请求");        } else if (successor != null) {            successor.handleRequest(request);        }    }}

/** * @author stefanie zhao * @date 2014-8-21 下午03:36:08 */public class ConcreteHandler3 extends Handler {    @Override    public void handleRequest(int request) {        if (request >= 20) {            System.out.println("20+ 处理此请求");        } else if (successor != null) {            successor.handleRequest(request);        }    }}

public class Main {    /**     * @Description: TODO     * @param @param args     * @return void     * @throws     */    public static void main(String[] args) {        Handler h1 = new ConcreteHandler1();        Handler h2 = new ConcreteHandler2();        Handler h3 = new ConcreteHandler3();        h1.setSuccess(h2);        h2.setSuccess(h3);        int[] requests = { 1, 123, 4, 13, 45, 3, 25, 34 };        for (int request : requests) {            h1.handleRequest(request);        }    }}

转载于:https://my.oschina.net/stefanzhlg/blog/308140

你可能感兴趣的文章
数据分析的四种类型模式
查看>>
极限元算法专家:深度学习在语音生成问题上的典型应用
查看>>
flume列子回想
查看>>
融资后又有大动作,Geek+宣布进入日本市场
查看>>
用 Flask 来写个轻博客 (7) — (M)VC_models 的关系(many to many)
查看>>
揭秘马斯克清洁能源计划: 用太阳能满足能源需求
查看>>
问:免遭WannaCryl攻击,总共分几步
查看>>
打造银行3.0时代,以人为中心的极致体验
查看>>
专家热议“互联网+”时代教育
查看>>
分析:企业控制不了云计算
查看>>
终端管理四大关键角色:监控、软件部署、补丁和安全
查看>>
IBM新版本TSM增加重复数据删除和DB2集成
查看>>
软件架构师是一个角色,不是一项工作
查看>>
爱投资CEO王博:互联网金融是土壤+种子
查看>>
不一样的BYOD 趋势科技虚拟化你的移动办公桌面
查看>>
自动化持续部署的三种反模式及解决方案
查看>>
运维人不应该忽略的理念和实践
查看>>
阿里助政府办案引争议 大数据未来在哪?
查看>>
什么样的企业可以称之为初创企业?
查看>>
30款最值得收藏的CSS框架
查看>>