您的位置:首页 > 其它

设计模式(7)--责任链模式

2016-02-26 12:50 155 查看
/**
* 责任链模式,将每一道工序设计好,相比建造者模式的生产线固定,责任链模式可以动态调整执行顺序。
* tomcat中的过滤器为典型的责任链模式。
* @Title: ChainOfResponsibilityDesign.java
* @Package design
* @author zfy1355_gmail_com
* @date 2016年2月26日 下午12:40:41
* @version V1.0
*/
public class ChainOfResponsibilityDesign {

static abstract class IHandler{
private IHandler handler;
public void setNextHandler(IHandler handler){
this.handler = handler;
};
public IHandler getNextHandler(){
return handler;
}
public void handle(int days){};
}
public static class TeacherHandler extends IHandler{
@Override
public void handle(int days) {
if(days<3){
System.out.println("老师批阅,同意");
}else{
System.out.println("请假超出3天,请上级批示");
}
if(getNextHandler()!=null){
getNextHandler().handle(days);
}
}
}
public static class MasterHandler extends IHandler{
@Override
public void handle(int days) {
if(days<20){
System.out.println("校长批阅,同意");
}else{
System.out.println("不同意");
}
if(getNextHandler()!=null){
getNextHandler().handle(days);
}
}
}

//小明请假
public static void main(String[] args) {
TeacherHandler tHandler = new TeacherHandler();
MasterHandler mHandler = new MasterHandler();
tHandler.setNextHandler(mHandler);
System.out.println("小明请假,假条给老师");
tHandler.handle(4);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式