设计模式之责任链模式!
发表于更新于
解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。
将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
UML类图:

抽象接口RequestHandler
:
1 2 3 4
| public interface RequestHandler {
void doHandler(String req); }
|
抽象类BaseRequestHandler
:
1 2 3 4 5 6 7 8
| public abstract class BaseRequestHandler implements RequestHandler {
protected RequestHandler next;
public void next(RequestHandler next) { this.next = next; } }
|
具体处理类AHandler
:
1 2 3 4 5 6 7 8 9 10 11 12
| public class AHandler extends BaseRequestHandler {
@Override public void doHandler(String req) { System.out.println("A中处理自己的逻辑"); if (next != null) { next.doHandler(req); } } }
|
使用类Client
:
1 2 3 4 5 6 7 8 9 10
| public class Client { public static void main(String[] args) { BaseRequestHandler a = new AHandler(); BaseRequestHandler b = new BHandler(); BaseRequestHandler c = new CHandler(); a.next(b); b.next(c); a.doHandler("链路待处理的数据"); } }
|