java——职责链模式

本文介绍了Java中的职责链模式,通过一个购买物资审批的实例解释了该模式的工作流程,展示了如何创建请求类、抽象审批类以及具体审批角色的实现。职责链模式能够解耦请求发送者和接收者,简化请求对象,并允许动态调整责任链。同时,讨论了模式的优点,如用于窗口系统的事件处理,但也提到了其可能导致的难点,如不易观察运行时特征。此外,还提到了Tomcat的Filter机制也运用了职责链模式。
摘要由CSDN通过智能技术生成

  今天小咸儿来总结一下最近学习的职责链模式:

职责链模式:为某个请求创建一个对象链。每个对象依序检查此请求,并对其进行处理,或者将它传给链中的下一个对象。

从图中可以很清楚的看出职责链模式的工作流程:

职责链电子邮件示例图:

在这里插入图片描述

在此,小咸儿以一个具体的实例来进行思路讲解。

  实例:比如说,在购买物资时,需要将采购单提交上自己的上一级部分主任进行审批,如果权限不够则继续递交给经理,还不够则继续递交给总经理,还没有权限则递交给董事。批准后发钱去购买物资。在这个过程中,我只需要提交我的请求给我的部门主任,具体审批过程,有谁最终审批我不关心,我只需要等待审批的结果就够了。

  接下来,先看一下代码:

请求类:采购申请单

package pattern.builder.chain;

/**
 * 采购申请单(请求类)
 * @author Phyllis
 * @since 2019年6月18日14:55:34
 */
public class PurchaseRequest {
   
    /**
     * 采购目的
     */
    private String purpose;
    /**
     * 采购单号
     */
    private int number;
    /**
     * 采购总价
     */
    private double amount;
    public PurchaseRequest(String  purpose, int number,double amount){
   
        this.purpose = purpose;
        this.number = number;
        this.amount = amount;
    }
    public String getPurpose() {
   
        return purpose;
    }

    public void setPurpose(String purpose) {
   
        this.purpose = purpose;
    }

    public int getNumber() {
   
        return number;
    }

    public void setNumber(int number) {
   
        this.number = number;
    }

    public double getAmount() {
   
        return amount;
    }

    public void setAmount(double amount) {
   
        this.amount = amount;
    }
}

抽象审批类:

package pattern.builder.chain;

/**
 * 抽象审批类:处理请求和跳转请求
 * @author Phyllis
 * @since 2019年6月18日15:02:05
 */
public abstract 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值