结合上文,将通用任务模板设计 引入 SpringBoot中,将 对象交给容器管理
@Component
public class TaskPorxy {
@Autowired
private RegionTask regionTask;
@Autowired
private Smstask smstask;
private Task task;
private String flag;
public void setFlag(String flag) {
this.flag = flag;
}
//获取代理对象
private Task getTask() {
switch (this.flag) {
case "1":
return regionTask;
case "2":
return smstask;
default:
return new Task() {
@Override
public void deakTask() {
System.out.println("我是通用任务的方法");
}
};
}
}
//任务代理入口
public void dealTaskProxy() {
this.task.deakTask();
}
}
任务一策略:
@Component
public class RegionTask implements Task {
@Override
public void deakTask() {
System.out.println("我是区域任务");
}
}
任务策略二
@Component
public class Smstask implements Task {
@Override
public void deakTask() {
System.out.println("我是短信任务");
}
}
测试方法
@RestController
@RequestMapping("/test")
public class testc {
@Autowired
private TaskPorxy taskProxy;
@GetMapping("/new")
private void getTask() {
taskProxy.setFlag("1");
return;
}
}