ITPub博客

首页 > 应用开发 > Java > 责任链模式

责任链模式

Java 作者:壹頁書 时间:2017-03-20 17:27:31 0 删除 编辑
http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html




  1. abstract class Handler {  
  2.   
  3.     /** 
  4.      * 持有后继的责任对象 
  5.      */  
  6.     protected Handler successor;  
  7.   
  8.     /** 
  9.      * 示意处理请求的方法,虽然这个示意方法是没有传入参数的 但实际是可以传入参数的,根据具体需要来选择是否传递参数 
  10.      */  
  11.     public abstract void handleRequest();  
  12.   
  13.     /** 
  14.      * 取值方法 
  15.      */  
  16.     public Handler getSuccessor() {  
  17.         return successor;  
  18.     }  
  19.   
  20.     /** 
  21.      * 赋值方法,设置后继的责任对象 
  22.      */  
  23.     public void setSuccessor(Handler successor) {  
  24.         this.successor = successor;  
  25.     }  
  26.   
  27. }  
  28.   
  29. class ConcreteHandler extends Handler {  
  30.     /** 
  31.      * 处理方法,调用此方法处理请求 
  32.      */  
  33.     @Override  
  34.     public void handleRequest() {  
  35.         /** 
  36.          * 判断是否有后继的责任对象 如果有,就转发请求给后继的责任对象 如果没有,则处理请求 
  37.          */  
  38.         if (getSuccessor() != null) {  
  39.             System.out.println("放过请求");  
  40.             getSuccessor().handleRequest();  
  41.         } else {  
  42.             System.out.println("处理请求");  
  43.         }  
  44.     }  
  45.   
  46. }  
  47.   
  48. class Client {  
  49.   
  50.     public static void main(String[] args) {  
  51.         // 组装责任链  
  52.         Handler handler1 = new ConcreteHandler();  
  53.         Handler handler2 = new ConcreteHandler();  
  54.         handler1.setSuccessor(handler2);  
  55.         // 提交请求  
  56.         handler1.handleRequest();  
  57.     }  
  58.   
  59. } 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-2135693/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 观察者模式
下一篇: 强化责任链模式
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6339872