虚函数与泛型的结合应用
来源:互联网 发布:类似音悦台的软件 编辑:程序博客网 时间:2024/06/16 10:58
<pre name="code" class="java">public abstract class AbstractCommonQuartzJob<T extends IQuartzCommonSIDSV> implements Job {private static Logger logger = LoggerFactory.getLogger(AbstractCommonQuartzJob.class);@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {JobDataMap jobDataMap = null;String provinceCode = null ;Map<String,String> extendParams = new java.util.HashMap<>();if(context == null){} else {jobDataMap = context.getJobDetail().getJobDataMap();//获取设置的省分编码;provinceCode = jobDataMap.getString(JobConstants.JobParam_ProvinceCode);for(String key : jobDataMap.keySet()){if( jobDataMap.get(key) != null){extendParams.put(key,jobDataMap.getString(key));}}}IQuartzCommonSIDSV sv = this.getService();try{if(StringUtils.isEmpty(provinceCode)){logger.info("定时任务开始,获取的省分编码为空,执行所有省分处理");sv.dealQuartz(extendParams);} else {logger.info("定时任务开始,获取的省分编码列表为:"+provinceCode);String[] provinceCodes = provinceCode.split(JobConstants.JobParam_SPLIT);sv.dealQuartzByProvinceCodes(provinceCodes,extendParams);}} catch(Exception e){logger.error("定时任务失败!", e);throw new JobExecutionException(e);} finally {logger.info("定时任务结束!");}}/** * 获取 对应的服务; * @return * @author yugn */abstract protected T getService();}
上述虚拟类
@DisallowConcurrentExecutionpublic class SmsSendJob extends AbstractCommonQuartzJob<IQuartzSmsSendSIDSV> {@Overrideprotected IQuartzSmsSendSIDSV getService() {return (IQuartzSmsSendSIDSV) QuartzContextHolder.getBean(JobConstants.SmsSendService);}public static void main(String[] args) throws JobExecutionException {SmsSendJob job = new SmsSendJob();job.execute(null);}}
这是实现类
泛型和虚拟类的使用,使得业务代码被完全封装,本质类似于适配器模式,但一层虚拟函数与泛型的使用,拓展了适配器模式中继承类选择,可以看做是适配器模式的拓展。
将服务类的对象实现了配置,从配置文件读取。
0 0
- 虚函数与泛型的结合应用
- 类成员函数的函数对象与RIIA结合在多返回点函数中的应用
- 浅谈RSS与样式的结合应用
- PEAR::HTML_QuickForm与Smarty 的结合应用
- 脚本与XSL的结合及应用
- PEAR::HTML_QuickForm与Smarty 的结合应用
- jqGrid与Struts2的结合应用
- SQLite3与C/C++的结合应用
- SQLite3与C/C++的结合应用
- Hibernate与Struts2结合的应用
- jvisualvm 与 Btrace的结合应用
- c标签与select的结合应用
- ActiveMQ与mqtt.js的结合应用
- MFC消息机制与虚函数的结合
- 欧拉函数的应用(2)——欧拉函数与欧拉定理的结合
- Java数组与函数的结合
- 结合typedef更为直观的应用函数指针
- 结合typedef更为直观的应用函数指针
- hashmap,使用iterator读取后顺序改变
- 字符串去空格问题(转)
- BZOJ3173 [Tjoi2013]最长上升子序列
- Java中的instanceof关键字
- OpenCV打开摄像头失败
- 虚函数与泛型的结合应用
- JAVA集合类
- BZOJ 1858 SCOI2010 序列操作 线段树
- java网络编程根据域名获取ip地址,URL
- 匹配IP字串、域名的正则表达式
- 面试基础知识
- 吵架必备的99句英语口语
- 《unix环境高级编程》 读书笔记 (8)
- 二十个易拼错的单词(H-Z)