java 责任链模式 链式编程
时间: 2023-12-03 20:40:47 浏览: 146
责任链模式是一种行为型设计模式,它允许你将请求沿着处理者链进行发送,直到其中一个处理者对其进行处理。Java中可以使用责任链模式实现链式编程,具体实现步骤如下:
1.定义一个抽象处理者(Handler)类,其中包含一个指向下一个处理者的引用和一个处理请求的方法handleRequest()。
2.定义具体的处理者类,继承抽象处理者类,并实现handleRequest()方法。在handleRequest()方法中,如果当前处理者能够处理该请求,则处理请求并返回结果;否则将请求传递给下一个处理者。
3.在客户端代码中,创建一个处理者链,并将请求发送到链的第一个处理者。处理者链会自动将请求沿着链进行传递,直到其中一个处理者能够处理该请求。
下面是一个Java责任链模式的链式编程示例:
```java
// 定义抽象处理者类
abstract class Handler {
protected Handler nextHandler;
public void setNextHandler(Handler handler) {
this.nextHandler = handler;
}
public abstract void handleRequest(int request);
}
// 定义具体的处理者类
class ConcreteHandler1 extends Handler {
public void handleRequest(int request) {
if (request >= 0 && request < 10) {
System.out.println("ConcreteHandler1 处理请求 " + request);
} else if (nextHandler != null {
nextHandler.handleRequest(request);
}
}
}
class ConcreteHandler2 extends Handler {
public void handleRequest(int request) {
if (request >= 10 && request < 20) {
System.out.println("ConcreteHandler2 处理请求 " + request);
} else if (nextHandler != null) {
nextHandler.handleRequest(request);
}
}
}
class ConcreteHandler3 extends Handler {
public void handleRequest(int request) {
if (request >= 20 && request < 30) {
System.out.println("ConcreteHandler3 处理请求 " + request);
} else if (nextHandler != null) {
nextHandler.handleRequest(request);
}
}
}
// 客户端代码
public class ChainOfResponsibilityDemo {
public static void main(String[] args) {
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
Handler handler3 = new ConcreteHandler3();
handler1.setNextHandler(handler2);
handler2.setNextHandler(handler3);
handler1.handleRequest(5);
handler1.handleRequest(15);
handler1.handleRequest(25);
}
}
```
输出结果为:
```
ConcreteHandler1 处理请求 5
ConcreteHandler2 处理请求 15
ConcreteHandler3 处理请求 25
```
阅读全文