责任链设计模式

 

 

/**
 * @Author zh
 * @Description 请求实体类
 * @Date 2021/12/20
 */
@Data
@ToString
public class BuyRequest {
    private Integer id;//请求的id
    private String name;//请求的name
    private double price;//请求的金额


}
/**
 * @Author zh
 * @Description 审批请求类
 * @Date 2021/12/20
 */
@Data
public abstract class ApproverRequest {
    //持有下一个审批的对象
    private ApproverRequest ApproverRequest =null;

    //审批的方法
    public abstract void processRequest(BuyRequest buyRequest);




}
    /*
    1-100 组长审
    101-1000 经理审
    //10001- ~ 总监审
     */


    //一审进行处理
    @Override
    public void processRequest(BuyRequest buyRequest) {
        double price = buyRequest.getPrice();
        if (price>=1&&price<=100){
            System.out.println("组长审核通过或者驳回");
        }else {
            //获取下一级的对象
    ApproverRequest nextApproverRequest =getApproverRequest();
            nextApproverRequest.processRequest(buyRequest);
        }

    }
}
public class TwoApprover extends ApproverRequest {


    @Override
    public void processRequest(BuyRequest buyRequest) {
        double price = buyRequest.getPrice();

        if (price>=101&&price<=1000){
            System.out.println("经理审核通过或者驳回");
        }else {
            //获取下一级对象
            ApproverRequest nextApproverRequest =getApproverRequest();

            nextApproverRequest.processRequest(buyRequest);
        }
    }
}
public class ThreeApprover extends ApproverRequest {


    @Override
    public void processRequest(BuyRequest buyRequest) {
        System.out.println("总监审核通过或者驳回");

    }
}
public class TMain
{
    public static void main(String[] args) {
        //1有请求的对象: 买东西

        BuyRequest buyRequest =new BuyRequest();
        buyRequest.setId(1001);
        buyRequest.setName("打印机");
        buyRequest.setPrice(100.2);
        ApproverRequest one =new OneApprover();
        ApproverRequest two =new TwoApprover();
        ApproverRequest three =new ThreeApprover();


        one.setApproverRequest(two); //
        two.setApproverRequest(three);

        //你只调用了one
        one.processRequest(buyRequest);
    }
}

 

posted on 2021-12-20 20:06  无心睡眠A8  阅读(23)  评论(0)    收藏  举报