责任链模式是一种处理请求的模式,它让多个处理器都有机会处理该请求,直到其中某个处理成功位置,责任链模式把多个处理器串成链,然后让请求在链上传递。

    责任链模式将请求和处理分开,请求者不知道谁去处理,处理者也不需要知道请求的全貌,可以提高系统灵活性。

    1. package com.learn.shejimoshi.责任链模式;
    2. public class Client {
    3. public static void main(String[] args) {
    4. Handler level1 = new Leader();
    5. Handler level2 = new Boss();
    6. level1.setNextHandler(level2);
    7. level1.process(10);
    8. // 虽然是给level1去处理,但实际上是Boss在处理
    9. level1.process(13);
    10. }
    11. }
    12. abstract class Handler{
    13. protected Handler nextHandler;
    14. public void setNextHandler(Handler nextHandler) {
    15. this.nextHandler = nextHandler;
    16. }
    17. public abstract void process(Integer info);
    18. }
    19. class Leader extends Handler{
    20. @Override
    21. public void process(Integer info) {
    22. if(info>0 && info<11){
    23. System.out.println("Leader处理");
    24. }else{
    25. nextHandler.process(info);
    26. }
    27. }
    28. }
    29. class Boss extends Handler{
    30. @Override
    31. public void process(Integer info) {
    32. System.out.println("Boss处理");
    33. }
    34. }