Ext2.0之事件模型分析

今天研究了一下Ext2.0中的事件模型,它是用是Observer模式实现的。首先有一个Event对象,Event对象中会保存一个监听者Listener集合,以及fire方法用于通知监听者,该Event对应一个事件对象,当该事件触发则Event对象会通知所有注册到该事件上的监听者。接着有一个Observable对象,Observable中有一个Event对象集合,Component(Ext2.0中所有的容器的基类)会实现这个Observable,每个Component的子类都会注册自己要监听的事件,并且在该Component的实现中会在相应的时候fire相应的Event,这样当你要监听发生在该Component上的这些已经注册的事件时,只要实现一个监听方法即可。但是看Ext的源码的时候发现了一个很奇怪的地方,根据Observable的实现来看,根本不需要注册要监听的事件,需要的仅仅是在捕捉事件的时候根据component抛出的事件的名称来捕捉就可以了,注册不注册都无所谓,似乎之所以要有这么一个注册的过程就是为了达到设计上的优美而已。呵呵,也许是我研究的还不够深入吧,后面再看看说不定会有其他的用途。

Leave a Reply

Your email address will not be published. Required fields are marked *

You must enable javascript to see captcha here!