java设计模式----模版模式+内部类+设计时间事件处理框架
来源:互联网 发布:正在配置usb端口 编辑:程序博客网 时间:2024/04/30 07:13
import java.util.ArrayList;
import java.util.List;
/**
* 创建一个基于时间驱动的事件 以模板设计模式 +内部类 设计出事件处理的框架
* @author xiaowei
*/
//抽象事件类
abstract class Event
{
private long eventTime ; //事件发生
protected long delayTime ; //发生间隔据当前时间
Event(long time)
{
this.delayTime =time ;
eventTime=System.nanoTime()+delayTime*1000000; //这里与JDK写的不一致 这里1秒等于 10的9次方
}
public boolean ifActtion() //是否执行事件
{
return System.nanoTime()>=eventTime ;
}
abstract void action() ; //提供一个抽象方法 可以实现不同的行为
}
/**
* @author xiaowei
*/
class TemplateController
{
private List<Event> el=new ArrayList<Event>() ; //事件集合
public void addEvent(Event e){
el.add(e) ;
}
public void start() //执行方法
{
while(el.size()>0)
{
for(Event tem:new ArrayList<Event>(el)){
if(tem.ifActtion()){
tem.action() ; //执行指定的方法
el.remove(tem) ; //删除执行完的事件
}
}
}
}
}
public class TemplateTest{
public static void main(String[]agrs){
TemplateController c=new TemplateController() ;
c.addEvent(new Event(3000){
@Override
void action() {
System.out.println("Event1执行");
System.out.println("3000毫秒的输出");
}
});
c.addEvent(new Event(1000){
@Override
void action() {
System.out.println("Event2执行");
System.out.println("1000毫秒的输出");
}
});
c.addEvent(new Event(6000){
@Override
void action() {
System.out.println("Event3执行");
System.out.println("6000毫秒的输出");
}
});
c.addEvent(new Event(5000){
@Override
void action() {
System.out.println("Event4执行");
System.out.println("5000毫秒的输出");
}
});
c.start() ;
}
}
- java设计模式----模版模式+内部类+设计时间事件处理框架
- java 模版设计模式
- JAVA设计模式---模版模式
- java设计模式-模版方法
- Java设计模式--模版类
- 设计模式--模版模式
- 设计模式--模版模式
- 内部类+迭代器设计模式的java实现。。。
- Java笔记(3)-设计模式、异常、内部类
- 设计模式--模版设计模式
- java 设计模式之三-模版模式
- Java设计模式之模版方法模式
- 10.--多态、instanceof、内部类、设计模式
- “迭代器”设计模式与内部类
- 通过模版方式模式进行框架设计
- Java设计模式_观察者模式&事件处理机制
- 模版方法设计模式
- (泛型,模版设计模式)
- PHP内核中读取$_GET\$_POST等全局变量
- ubuntu 终端中文显示乱码问题
- Implementing operator->* for Smart Pointers
- windows动态库回顾
- [软件工程]一个故事, 分析陷入焦油坑的软件项目
- java设计模式----模版模式+内部类+设计时间事件处理框架
- Fragment和FragmentActivity的使用方法 .
- 2011年3月更新OFFICE2003精简版word缺少艺术型页面边框的解决方法
- 关于磁盘驱动的学习 转星际盟主
- miniport, port driver,disk.sys 之间的关系(转)
- 态度决定你的高度
- MSDN 下载
- 关于 XML 解析中的 setNamespaceAware
- linux 的set,env和export的区别