版权声明: https://blog.csdn.net/jiangxuexuanshuang/article/details/88528868
1、类图
2、实现
public interface IExport {
void export();
}
public abstract class AbstractSyncExport implements IExport {
protected IExport parentExport;
public AbstractSyncExport(){}
public AbstractSyncExport(IExport export) {
this.parentExport = export;
}
}
public class AsyncExport extends AbstractSyncExport {
private String test = "init async";
public AsyncExport(IExport sync) {
super(sync);
}
@Override
public void export() {
this.parentExport.export();
System.out.println(test);
System.out.println("export type: async" );
}
}
public class SyncExport extends AbstractSyncExport {
public SyncExport(IExport export) {
super(export);
}
@Override
public void export() {
this.parentExport.export();
System.out.println("export type: sync");
}
}
public class MainExport implements IExport {
@Override
public void export() {
System.out.println("export type: begin");
}
}
public class ExportTest {
public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException {
IExport begin = new MainExport();
IExport sync = new SyncExport(begin);
IExport async = new AsyncExport(sync);
async.export();
}
}