今天小咸儿来总结一下最近学习的职责链模式:
职责链模式:为某个请求创建一个对象链。每个对象依序检查此请求,并对其进行处理,或者将它传给链中的下一个对象。
从图中可以很清楚的看出职责链模式的工作流程:
职责链电子邮件示例图:
在此,小咸儿以一个具体的实例来进行思路讲解。
实例:比如说,在购买物资时,需要将采购单提交上自己的上一级部分主任进行审批,如果权限不够则继续递交给经理,还不够则继续递交给总经理,还没有权限则递交给董事。批准后发钱去购买物资。在这个过程中,我只需要提交我的请求给我的部门主任,具体审批过程,有谁最终审批我不关心,我只需要等待审批的结果就够了。
接下来,先看一下代码:
请求类:采购申请单
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