在OO中可以使用抽象方法及接口来完成文中通过函数指针和结构体来实现的间接层。
Client.java
AppInterface app=new AppImpl();
AppInterface app1=new AppProxy(app);
AppProxy.java
public class AppProxy implements AppInterface{
private AppInterface appRef;
public AppProxy(AppInterface appRef){
this.appRef=appRef
}
public void doSomething(){
/*some codes*/
}
}
通过Proxy来实现间接层,相互嵌套可以实现多个间接层,并且可以通过一个AppBuilder来创建这个对象,组合多个间接层。间接层中可以实现文中提及的对参数的预处理。
同时,我也认为文中提及的间接层也可以是Adapter。