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;
}
}
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));
}
}
辅导员同意了张三的请假!
院长同意了李四的请假!
校长同意了王五的请假!