【设计模式】- 责任链篇

简介

  • 责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求组的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

  • 代码:

//定义一个base处理者
public abstract class Handler { protected Handler handler; public void setHandler(Handler handler) { this.handler = handler; } public abstract void handleRequest(); } //定义处理者1 public class FirstHandler extends Handler { @Override public void handleRequest() { if (true) { doSomething(); } else if (Objects.nonNull(handler)) { handler.handleRequest(); } } } //定义处理者2 public class SecondHandler extends Handler { @Override public void handleRequest() { if (true) { doSomething(); } else if (Objects.nonNull(handler)) { handler.handleRequest(); } } } //定义处理者3 public class ThirdHandler extends Handler { @Override public void handleRequest() { if (true) { doSomething(); } else if (Objects.nonNull(handler)) { handler.handleRequest(); } } } //入口处理方法 public void method(){ //定义责任链条 Handler firstHandler = new FirstHandler(); Handler secondHandler = new SecondHandler(); Handler thirdHandler = new ThirdHandler(); firstHandler.setHandler(secondHandler); secondHandler.setHandler(thirdHandler); //传递任务 firstHandler.handleRequest(); } 
  • 通过上述代码,可以看出,定义了责任链条之后,那么就会给满足条件的handler处理请求。

猜你喜欢

转载自www.cnblogs.com/lycsmzl/p/13402310.html