java事件驱动深度历险

       个人认为,java里面的事件的监听和处理是做得比较好的。而它结构的完美就不不是用语言来形容的了。在java里,接口的使用可以说是代表着一个人对java的理解和掌握程度。而那些所谓模式几乎全部是接口的使用,我在看模式的时候,常常花时间最多的地方就是接口的应用。接口使得安全的增强一个类的功能成为可能,并且提供了一个抽象的骨架实现。但是并非所有的接口里面都有骨架的,有的就是一个接口,剩下的就是注释了,这样的接口有什么用呢?如果你对java比较熟悉的话,相信你已经结识到了一些空的接口,比如Cloneable这个接口,它的作用无非就是表示了要复制的对象。没有这个接口你的程序注定要throw Exception。今天在看java事件驱动的时候,又结识到了一个空的接口类型EventListener。现在突然有个想法,是不是最基本的java类型都是空的接口来实现的呢?有空了在看程序把。

        java里面的事件驱动的格式一般都是add***Listener(),remove***Listener()。我在写代码的时候也不是很关心这些事件的产生到底是怎么产生的。现在想想,每个事件必定要有个事件源,也就是EventSource,它的作用就是产生***ChangeEvent,这里的EventListener必定是每个事件事件都要实现的了,说是实现只是implements或者是extends一下就可以了,这些都不用我们来担心了,sun早就做好了这些的代码,我们可以查看,这里要说的是如果自己写一个大点的系统的话,难免是要来重新写事件驱动的代码,但是参考sun的这一套我们可以很方便的实现自己的事件发布,监听,处理等的操作。Event可以用sun提供的,事件的发布可能要我们来重新改写,但是如果仔细的阅读sun的代码,我们可以很容易的找到事件源的代码PropertyChangeEvent。, here's an overview of how event handling in the AWT works.

A listener object is an instance of a class that implements a special interface called (naturally enough) a listener interface.

            An event source is an object that can register listener objects and send them event objects.

  • The event source sends out event objects to all registered listeners when that event occurs.

  • The listener objects will then use the information in the event object to determine their reaction to the event.

想我刚接触java的时候看到事件就是头晕,现在看来也不是很恐怖,它里面的最根本的一个就是PropertyChangeEvent(Object source, String propertyName, Object oldValue, Object newValue)这个构造函数。他的作用就是用来发布一个事件的属性发生了变化这样一个事件(PropertyChangeEvent),变化发出去就要靠另外一个class:PropertyChangeSupport。它里面充满了各种对事件进行处理的方法,仔细看看绝对对自己对java的理解有很大的帮助。它发布事件变化的方式很简单,就是firePropertyChange,有人称这种方式是广播的方式,还是很有道理的,你愿意关心我发布的信息,你就加一个Listener过来,它发布的是一个PropertyChangeEvent,在以后的监听事件中我们可以想到每个监听的肯定是一个PropertyChangeEvent或者它的一个字类的事件。我们所要作的就是按照Observer模式所说的做一个忠实的客户端,我们可以加一个监听事件来监听事件发生了变化,这里是sun我所发现的用Observer模式用的最彻底的地方(也许我的理解有误)。一个组件要想能够监听到事件的变化,就要设置add***Listener()这个方法。千万不要以为在java里面的所有的组件都是这样来实现的,java用了一个很恐怖的类把java里面所有的监听的接口都在这AWTEventMulticaster里面实现了,它提供了一些static的add,delete方法来为其他需要用到监听的组件来调用。这大概就是整个事件的流程,事件产生,发布,监听。头绪有点乱,还是对事件的机制不是很熟,以后成熟了再来修改。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值