MethodSchedulerNoExtends,无缝方法调度器
来源:互联网 发布:网络骑士txt下载 编辑:程序博客网 时间:2024/04/28 04:43
闲暇之余对之前做过的 MethodScheduler 再封装了一下,现在能够做到只需要在加入一行代码就可以进行方法的调度了,不需要像之前一样要继承,看起来更无缝一些。原理上还是使用了观察者模式,只是角色的功能稍微变动了一下,上一版的观察者是相当于只是一个观察者,现在变成每一个方法是都观察者。
代码也上传到了世界最大的同性交友网站,传送门:https://github.com/english207/MethodScheduler
这次我们先来解释一下观察者模式:
首先,这里的观察者是需要被通知的一方,观察者将自己注册给被观察者;
然后,当被观察者的触发条件到达时,将通知所有的观察者。
如下图:
图 (1):观察者向被观察者注册
图(2):当被观察者有事件触发时通知所有的观察者
被通知时对应代码段:
public void updateByCron(ISubject subject) { for (Object obj : mapJobList.keySet()) { List<String> excuted_methods = mapJobList.get(obj); for (String excuted_method : excuted_methods) { try { /** * 参数长度为0即要保障执行的方法 * 所以执行的方法一定是要无参 */ Method method = obj.getClass().getDeclaredMethod(excuted_method); new Thread(new MethodRunnable(method, obj)).start(); break; } catch (Exception e) { e.printStackTrace(); } } } }
使用方式较之前是更方便了些:
public class TestNoExtends{ public void say() { System.out.println("say hello"); } public static void main(String[] args) { RegisterCronNoExtends.regWork(new TestNoExtends(), "say", "0/2 * * * * ? *"); }}
更友好的嵌入代码里边,而不需要继承什么了
感兴趣的童鞋可以去GitHub看看哈。
预计下一步要走@注解的方式
1 0
- MethodSchedulerNoExtends,无缝方法调度器
- MYSQL 无缝替代 SQL Server row_number()方法
- linux进程调度方法
- 实时系统调度方法
- linux内核调度方法
- linux进程调度方法
- Java多线程调度方法
- 【操作系统】任务调度方法
- 操作系统调度方法
- 线程调度的方法
- AGV调度方法入门
- 线程调度的方法()
- linux进程调度方法
- 一种嵌入式微调度器的实现方法
- MethodScheduler -- 基于Quartz的方法调度器 by java
- 调度器
- 调度器
- 调度器
- 算法专项(1)——快速排序
- HEVC的参考队列解码
- Canny算子
- 随笔:弱类型语言javascript中 a,b 的运算
- JS各种类型问题与隐式类型转换
- MethodSchedulerNoExtends,无缝方法调度器
- 用于应用程序状态同步的方法和设备
- 《码农·Docker云图(第20期)》的笔记
- HTML标签自定义属性
- Apache配置基于域名的虚拟主机
- 匹配emoji
- iOS 异步图片加载优化与常用开源库分析
- git status命令
- 通常在使用Android的getActionBar()的时候报空指针异常,通常有5种原因。