设为首页 加入收藏

TOP

责任链模式小试(二)
2019-09-03 03:33:56 】 浏览:77
Tags:责任 模式 小试
quest request) { String returnStr
= ""; RequestLeave rl = (RequestLeave) request; if (rl.getDays() <= 7) { // 一旦在7天以内,全部同意 returnStr = "院长同意了" + rl.getName() + "的请假!"; } else { if (successor != null) { returnStr = successor.handlerRequst(request); } else { returnStr = "上级领导不在,暂时无法处理!"; } } return returnStr; } }

 

package chain_of_responsibility.me;

/*
 * 校长
 */
public class HandlerPresident extends Handler {

    @Override
    protected String handlerRequst(Request request) {

        if (request.getType().equals(RequestLeave.LEAVE_TYPE)) { // 如果是请假的请求,才处理

            return handlerLeaveRequest(request);

        } else {

            return "校长无法受理此请求!";

        }
    }

    private String handlerLeaveRequest(Request request) {

        String returnStr = "";

        RequestLeave rl = (RequestLeave) request;

        returnStr = "校长同意了" + rl.getName() + "的请假!"; //不问天数、全部同意!

        return returnStr;

    }
}

4、OK,下面是测试:

package chain_of_responsibility.me;

public class Client {

    public static void main(String[] args) {

        Handler counsellor = new HandlerCounsellor(); // 辅导员

        Handler dean = new HandlerDean(); // 院长

        Handler president = new HandlerPresident(); // 校长

        // 拼装处理链
        counsellor.setSuccessor(dean);

        dean.setSuccessor(president);

        // 3个不同请求
        RequestLeave request1 = new RequestLeave();

        RequestLeave request2 = new RequestLeave();

        RequestLeave request3 = new RequestLeave();

        request1.setDays(2);

        request1.setName("张三");

        request2.setDays(5);

        request2.setName("李四");

        request3.setDays(9);

        request3.setName("王五");

        // 请求
        System.out.println(counsellor.handlerRequst(request1));
        
        System.out.println(counsellor.handlerRequst(request2));
        
        System.out.println(counsellor.handlerRequst(request3));

    }
}

 

5、结果如下:

辅导员同意了张三的请假!
院长同意了李四的请假!
校长同意了王五的请假!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇说说设计模式~组合模式(Composite) 下一篇UML基本关系

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目