妙博客

主机评测 香港服务器 洛杉矶VPS测评

设计模式-JAVA-责任链模式(Chain Of Responsibility)

责任链模式是一种行为型设计模式,它允许多个对象来处理请求,而不是只有一个对象来处理请求。每个对象都可以决定是否处理请求,如果它不能处理请求,它会将请求传递给下一个对象,直到请求被处理为止。

下面是一个简单的Java实现责任链模式的例子:

首先,我们定义一个处理请求的接口:

public interface Handler {
    void setNextHandler(Handler handler);
    void handleRequest(Request request);
}

然后,我们实现这个接口,创建一个具体的处理器:

public class ConcreteHandler implements Handler {
    private Handler nextHandler;
    public void setNextHandler(Handler handler) {
        this.nextHandler = handler;
    }
    public void handleRequest(Request request) {
        if (request.getType() == RequestType.TYPE1) {
            System.out.println("ConcreteHandler handles TYPE1 request");
        } else if (nextHandler != null) {
            nextHandler.handleRequest(request);
        } else {
            System.out.println("No handler found for request");
        }
    }
}

在这个实现中,我们首先检查请求的类型是否是我们可以处理的类型。如果是,我们处理请求。否则,我们将请求传递给下一个处理器。如果没有下一个处理器,我们将输出一个错误消息。

最后,我们可以使用这些处理器来创建一个责任链:

public class Client {
    public static void main(String[] args) {
        Handler handler1 = new ConcreteHandler();
        Handler handler2 = new ConcreteHandler();
        Handler handler3 = new ConcreteHandler();
        handler1.setNextHandler(handler2);
        handler2.setNextHandler(handler3);
        Request request1 = new Request(RequestType.TYPE1);
        Request request2 = new Request(RequestType.TYPE2);
        Request request3 = new Request(RequestType.TYPE3);
        handler1.handleRequest(request1);
        handler1.handleRequest(request2);
        handler1.handleRequest(request3);
    }
}


在这个例子中,我们创建了三个处理器,并将它们链接在一起,形成一个责任链。然后,我们创建了三个请求,并将它们传递给第一个处理器。第一个处理器将根据请求的类型将请求传递给下一个处理器,直到请求被处理为止。


JAVA7大原则和23种设计模式汇总,点我查看

Copyright Your 142132.com Rights Reserved. 赣ICP备17010829号-2