使用Java实现一个对于函数执行的监听,执行完成后执行操作B,要求代码尽量简洁优雅
时间: 2024-03-05 22:49:07 浏览: 43
可以使用Java中的代理模式来实现函数执行的监听。具体实现步骤如下:
1. 定义一个接口,包含要监听的函数和操作B。
```
public interface FunctionListener {
void executeFunction();
void executeOperationB();
}
```
2. 实现该接口的类,重写接口中的函数,并在函数执行完成后调用操作B。
```
public class FunctionListenerImpl implements FunctionListener {
public void executeFunction() {
// 执行要监听的函数
System.out.println("执行函数");
}
public void executeOperationB() {
// 执行操作B
System.out.println("执行操作B");
}
}
```
3. 定义一个代理类,该类持有一个实现了接口的类的对象,在函数执行前后调用操作B。
```
public class FunctionProxy implements FunctionListener {
private FunctionListener functionListener;
public FunctionProxy(FunctionListener functionListener) {
this.functionListener = functionListener;
}
public void executeFunction() {
// 在函数执行前调用操作B
functionListener.executeOperationB();
// 执行要监听的函数
functionListener.executeFunction();
// 在函数执行后调用操作B
functionListener.executeOperationB();
}
public void executeOperationB() {
// 不需要实现
}
}
```
4. 使用代理类来监听函数执行。
```
FunctionListener functionListener = new FunctionListenerImpl();
FunctionListener proxy = new FunctionProxy(functionListener);
proxy.executeFunction();
```
这样,当执行函数时,会先执行操作B,然后执行要监听的函数,最后再执行一次操作B。
阅读全文