用java语言实现事件委托模式

您所在的位置:网站首页 解释java语言的委托事件模型 用java语言实现事件委托模式

用java语言实现事件委托模式

2024-07-10 22:52| 来源: 网络整理| 查看: 265

csdn:事件委托模式是一个比较常用的设计模式,但是Java语言本身没有对其做一定的封装,因此实现起来有一定难度(了解原理后很简单),相比之下.NET就容易了很多。

身为一个Java爱好者,怎么向这样一个小困难低头,但是上网搜索,却没发现相关解决方案,得,自己来做一个封装吧。

其实结合例子更好,那么我就用一个小例子来引出这种设计模式。

一个班级,有两类学生,A类:不学习,玩,但是玩的东西不一样,有的是做游戏,与的是看电视(有点不合理)

B类:放哨的学生,专门看老师的动向,如果老师进班了就立即通知大家。

如此就形成了一个需求,放哨的学生要通知所有玩的学生:老师来了,而不同的学生有不同的反应,有的马上把电视关闭,有的停止玩游戏。

设计的要求如下,让A类学生和B类学生完全解耦,即A类完全不知道B类的学生,却可以通知B类的学生。

代码及说明如下:

Event 类,定义了一个事件类:

Code: package lnurd.test;     import java.lang.reflect.Method;   import java.util.Date;     public class Event {       //要执行方法的对象       private Object object;       //要执行的方法名称       private String methodName;       //要执行方法的参数       private Object[] params;       //要执行方法的参数类型       private Class[] paramTypes;              public Event(){                  }       public Event(Object object,String methodName,Object...args){           this.object=object;           this.methodName=methodName;           this.params=args;           contractParamTypes(this.params);       }       //根据参数数组生成参数类型数组       private void contractParamTypes(Object[] params){           this.paramTypes=new Class[params.length];           for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3