加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

第24章《职责链模式》

发布时间:2020-12-13 20:56:25 所属栏目:百科 来源:网络整理
导读:import java.util.ArrayList; /** @Author: cxh @CreateTime: 18/1/27 19:40 @ProjectName: JavaBaseTest */ public class Client{ public static void main(String[] args) { ManagerLev1 lev1=new ManagerLev1(); ManagerLev2 lev2=new ManagerLev2(); Man

import java.util.ArrayList;

/**

  • @Author: cxh

  • @CreateTime: 18/1/27 19:40

  • @ProjectName: JavaBaseTest
    */
    public class Client{
    public static void main(String[] args) {
    ManagerLev1 lev1=new ManagerLev1();
    ManagerLev2 lev2=new ManagerLev2();
    ManagerLev3 lev3=new ManagerLev3();
    lev1.setHandler(lev2);
    lev2.setHandler(lev3);

     Request request1=new Request("李静",3);
     Request request2=new Request("黎明",10);
     Request request3=new Request("周青",4);
     Request request4=new Request("纪静",1);
     ArrayList<Request> list=new ArrayList<>();
     list.add(request1);
     list.add(request2);
     list.add(request3);
     list.add(request4);
     list.stream().forEach(request -> lev1.getResult(request));

    }
    }



/**

  • @Author: cxh
  • @CreateTime: 18/1/27 19:41
  • @ProjectName: JavaBaseTest
    */
    public abstract class Handler{
    protected Handler handler;
    Handler(){}
    public void setHandler(Handler handler) {
    this.handler = handler;
    }
    abstract void getResult(Request request);
    }


/**

  • @Author: cxh

  • @CreateTime: 18/1/27 19:43

  • @ProjectName: JavaBaseTest
    */
    public class ManagerLev1 extends Handler{

    @Override
    void getResult(Request request) {
    String name=request.getName();
    int days=request.getDays();
    if(days<=2){
    System.out.println(name+"请假"+days+"天的请求得到批准! and 请假级别:lev1");
    }else{
    super.handler.getResult(request);
    }
    }
    }



/**

  • @Author: cxh
  • @CreateTime: 18/1/27 19:43
  • @ProjectName: JavaBaseTest
    */
    public class ManagerLev2 extends Handler {
    @Override
    void getResult(Request request) {
    String name=request.getName();
    int days=request.getDays();
    if(days<=5){
    System.out.println(name+"请假"+days+"天的请求得到批准! and 请假级别:lev2");
    }else{
    super.handler.getResult(request);
    }
    }
    }


/**

  • @Author: cxh
  • @CreateTime: 18/1/27 19:43
  • @ProjectName: JavaBaseTest
    */
    public class ManagerLev3 extends Handler {
    @Override
    void getResult(Request request) {
    String name=request.getName();
    int days=request.getDays();
    System.out.println(name+"请假"+days+"天的请求得到批准! and 请假级别:lev3");
    }
    }


/**

  • @Author: cxh

  • @CreateTime: 18/1/27 19:45

  • @ProjectName: JavaBaseTest
    */
    public class Request {
    private String name;
    private int days;

    Request(String name,int d) {
    this.name = name;
    this.days = d;
    }

    public String getName() {
    return name;
    }

    public int getDays() {
    return days;
    }
    }

参考书籍:《大话设计模式》-程杰

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读