Java代码用设计模式实现多层 多个 if else if
时间: 2023-07-20 08:44:10 浏览: 61
对于多层多个 if else if,可以使用责任链模式来实现。该模式将请求发送给多个对象,每个对象都有机会处理请求,直到其中一个对象处理请求为止。
以下是一个使用责任链模式实现多层多个 if else if 的 Java 代码:
```java
// 定义一个处理请求的接口
interface RequestHandler {
void handleRequest(int request);
}
// 实现处理请求的类
class Level1Handler implements RequestHandler {
private RequestHandler nextHandler;
public void setNextHandler(RequestHandler handler) {
nextHandler = handler;
}
public void handleRequest(int request) {
if (request < 10) {
System.out.println("Handled by Level 1 Handler");
} else if (nextHandler != null) {
nextHandler.handleRequest(request);
} else {
System.out.println("No Handler found for request " + request);
}
}
}
class Level2Handler implements RequestHandler {
private RequestHandler nextHandler;
public void setNextHandler(RequestHandler handler) {
nextHandler = handler;
}
public void handleRequest(int request) {
if (request < 100) {
System.out.println("Handled by Level 2 Handler");
} else if (nextHandler != null) {
nextHandler.handleRequest(request);
} else {
System.out.println("No Handler found for request " + request);
}
}
}
class Level3Handler implements RequestHandler {
private RequestHandler nextHandler;
public void setNextHandler(RequestHandler handler) {
nextHandler = handler;
}
public void handleRequest(int request) {
if (request < 1000) {
System.out.println("Handled by Level 3 Handler");
} else if (nextHandler != null) {
nextHandler.handleRequest(request);
} else {
System.out.println("No Handler found for request " + request);
}
}
}
public class Main {
public static void main(String[] args) {
RequestHandler handler1 = new Level1Handler();
RequestHandler handler2 = new Level2Handler();
RequestHandler handler3 = new Level3Handler();
handler1.setNextHandler(handler2);
handler2.setNextHandler(handler3);
// send requests to the handler chain
handler1.handleRequest(5);
handler1.handleRequest(50);
handler1.handleRequest(500);
handler1.handleRequest(5000);
}
}
```
在上述代码中,我们定义了一个 RequestHandler 接口,包含处理请求的方法 handleRequest。然后实现了三个不同等级的处理请求的类,并将它们串联起来形成一个处理链。最后在 Main 类中,我们创建了一个处理链,并向其发送了多个不同的请求。
使用责任链模式可以有效地解决多层多个 if else if 的问题,使代码更加清晰、易于维护。