为你的应用程序精心搭建一个基于事件的框架

ZDNet软件频道 时间:2003-02-12 作者:BUILDER.COM |  我要评论()
本文关键词:
框架最重要的作用是能够满足软件设计人员需求的灵活性和可扩展性,这些需求都源自于众多的商业规则。现在让我们来考虑一些通知的例子,并看看如何使用框架更快地搭建基于事件的应用程序。
框架最重要的作用是能够满足软件设计人员需求的灵活性和可扩展性,这些需求都源自于众多的商业规则。因而框架能够同时提供阻塞和非阻塞事件通知,这些事件都是根据叫做判断(predicate)的逻辑条件而做出的。这两个机制对开发人员来说都是透明的,都被选择用来代表事件侦听程序的行为。现在让我们来考虑一些通知的例子,并看看如何使用框架更快地搭建基于事件的应用程序。


点击这里下载本文全部代码

通知的类型

阻塞通知,或者叫同步通知,在事件侦听程序等待阻塞执行线程的判断时才被使用。在判断得到满足的时候,这个线程就继续执行。这就为任务序列的及时串行化提供了一种方法。非阻塞通知,或者叫做异步通知,和标准的事件侦听程序模型类似:在多个侦听程序里注册一个事件,当事件发生的时候,它们就被通知到。这里的不同是,侦听程序只有在事件满足判断,而且这个判断在这些侦听程序里进行过注册的时候才被通知。判断既可以是简单的也可以是复杂的逻辑条件;例如,它可以依据另一个事件的结果而不同。

工作原理

框架包括有多个接口和抽象类(A),它能够扩展功能。这个框架层次结构的核心接口是Blackboard。它提供了侦听程序、判断、事件注册、事件传播和侦听程序通知(Listing A)。AbstractBlackboard类是Blackboard接口骨架形式的实现(Listing B)。Predicate接口(Listing C)和AbstractPredicate类(Listing D)会实现框架的主要逻辑概念,它们还负责事件的分派。BlackboardActionListing E)代表着对BlackboardEventListing F)启动的动作,只要判断为真。

图A

类的图表

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134