全球事件调度员

时间:2013-01-30 11:40:01

标签: actionscript-3 flex events design-patterns air

使用Global Event Dispatcher会有什么不利之处,如下所述: http://www.riaspace.com/2010/11/unframework-so-how-to-getaway-without-any-framework/ 请记住,我只是在小型(ish)应用程序上工作。

// eventDispatcher.as script file

package 
{
    import flash.events.IEventDispatcher;

    public function get eventDispatcher():IEventDispatcher
    {
        return _eventDispatcher;
    }
}

import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;

var _eventDispatcher:IEventDispatcher = new EventDispatcher();

public class MyViewPM
{
    public function btn_clickHandler():void
    {
        eventDispatcher.dispatchEvent(new MyEvent(MyEvent.EVENT_TYPE));
    }
}

1 个答案:

答案 0 :(得分:5)

如果您正在处理较小的项目并且您自己,那么全球调度员可能会很好,可以为您节省一些时间。

问题在于更大的应用程序和几个开发人员在相同的代码库上工作。我的经验是(经验不足)开发人员会迅速滥用全局事件系统并在其上发送事件,这些事件应该是本地事件(主要是查看事件)。这使得代码难以理解,测试和修改,因为您几乎无法控制谁发送以及谁监听某些事件。与全局状态一样,数据可以同时在不同的地方进行修改,这可能导致调试噩梦。

如果您对增强型全球调度员感兴趣,请查看AS3Commons EventBus