使用多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
java">/*** 责任链模式* 类型:行为型* 描述:使用多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。*/
public class ConcreteMode {// 具体处理者static class ConcreteHandler extends Handler {public ConcreteHandler(String name){super(name);}public void handleRequest(Request request){System.out.println(this.name + "处理了:" + request.getName());}}// 请求static class Request {private String name;public Request(String name){this.name = name;}public String getName(){return name;}}// 处理者static abstract class Handler {private Handler nextHandler;String name;public Handler(String name){this.name = name;}public void setNextHandler(Handler nextHandler){this.nextHandler = nextHandler;}public void handleRequest(Request request){if (this.nextHandler != null){this.nextHandler.handleRequest(request);}}}// 客户端public static void main(String[] args){// 创建请求Request request = new Request("小明");// 创建处理者Handler handler1 = new ConcreteHandler("张三");Handler handler2 = new ConcreteHandler("李四");Handler handler3 = new ConcreteHandler("王五");// 设置处理者链handler1.setNextHandler(handler2);handler2.setNextHandler(handler3);// 处理请求handler1.handleRequest(request);}
}