基于事件的隐式调用风格
基本组件:对象或过程,并分类为以下更小的组件
–过程或函数,充当事件源或事件处理器的角色
–事件
连接件:事件-过程绑定
–过程(事件处理器,事件的接收和处理方) 向特定的
事件进行注册;
–组件(事件源) 发布事件;
–当某些事件被发布(触发) 时,向其注册的过程被隐式调用;
–调用的次序是不确定的;
优点
§支持实现交互式系统(用户输入/网络通讯)
§异步执行,不必同步等待执行结果
§对事件的并发处理将提高系统性能;
缺点:
分布式控制方式使系统的同步、验证和调试变得异常困难:
–组件放弃了对系统计算的控制,难以控制各模块之间的处理次序。一个组件触发一个事件时,不能确定其它组件是否会响应它。而且即使它知道事件注册了哪些组件的构成,它也不能保证这些过程被调用的顺序。
–既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理则难以保证。
–传统的基于先验和后验条件的验证变得不可能。
程序:
1.基于事件的隐式调用风格
常用控制组件的事件——按钮与动作事件(ActionEvent)