责任链模式就是多个处理器一次处理同一个请求。一个请求先经过处理器A,再把请求传递给处理器B,从而形成一个链条

    1. public abstract class AbstractHandler {
    2. protected AbstractHandler handler;
    3. public void setHandler(AbstractHandler handler) {
    4. this.handler = handler;
    5. }
    6. public abstract void handle();
    7. }
    1. public class HandlerA extends AbstractHandler{
    2. @Override
    3. public void handle() {
    4. System.out.println("处理器A处理");
    5. if (super.handler != null) {
    6. super.handler.handle();
    7. }
    8. }
    9. }
    1. public class HandlerB extends AbstractHandler{
    2. @Override
    3. public void handle() {
    4. System.out.println("处理器B处理");
    5. if (super.handler != null) {
    6. super.handler.handle();
    7. }
    8. }
    9. }
    1. public class HandlerChain {
    2. private AbstractHandler head;
    3. private AbstractHandler tail;
    4. public void addHandler(AbstractHandler handler) {
    5. handler.setHandler(null);
    6. if (head == null) {
    7. head = handler;
    8. tail = handler;
    9. }
    10. tail.setHandler(handler);
    11. tail = handler;
    12. }
    13. public void handle() {
    14. if (head != null) {
    15. head.handle();
    16. }
    17. }
    18. }