设计模式(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); } }
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- C#编程中使用设计模式中的原型模式的实例讲解
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解
- 实例解析C#设计模式编程中简单工厂模式的使用
- 详解C#设计模式编程中生成器模式的使用
- 深入解析C#设计模式编程中对建造者模式的运用
- PHP设计模式之装饰者模式代码实例
- php设计模式之单例模式实例分析
- 介绍php设计模式中的工厂模式
- PHP设计模式之适配器模式代码实例
- 深入浅出23种设计模式
- 浅谈c#设计模式之单一原则
- 解析C#设计模式编程中的装饰者模式
- 详解C#的设计模式编程之抽象工厂模式的应用