定义接口规范
public interface Job {
void execute(Integer a);
}
抽象模板方法
public abstract class AbstractSimpleJob implements Job {
protected abstract int selectTasks(String name);
@Override
public void execute(Integer jobParam) {
System.out.println("jobParam:" + jobParam);
String taskName = "任务一";
int i = selectTasks(taskName);
System.out.println("已经查询到要执行的任务数:" + i);
System.out.println("查询任务结束");
boolean tasks = true;
execute(tasks);
System.out.println("任务运行结束");
}
protected abstract void execute(boolean f);
}
子任务实现类1
public class GeneratorTaskBean extends AbstractSimpleJob {
@Override
protected int selectTasks(String name) {
System.out.println("GeneratorTaskBean:接收查询参数:::" + name);
System.out.println("子类的自身业务查询");
return 100;
}
@Override
protected void execute(boolean f) {
System.out.println("子类要执行的任务:" + f);
}
}
子任务实现类2
public class PrizeGeneratorTaskBean extends AbstractSimpleJob {
@Override
protected int selectTasks(String name) {
System.out.println("PrizeGeneratorTaskBean:接收查询参数:::" + name);
System.out.println("奖品任务子类的自身业务查询");
return 110;
}
@Override
protected void execute(boolean f) {
System.out.println("子类奖品要执行的任务:" + f);
}
}
测试
public class RunClassMain {
public static void main(String[] args) {
AbstractSimpleJob job = new GeneratorTaskBean();
job.execute(1);
job.execute(true);
AbstractSimpleJob job2 = new PrizeGeneratorTaskBean();
job2.execute(1);
job2.execute(true);
}
}