处理事件驱动应用程序复杂性的技术

时间:2014-12-06 20:49:46

标签: events design-patterns event-handling

一般来说,编写从外界接收事件的系统有哪些技巧?例如。蓝牙应用程序可以从HCI接收许多低级别事件。它必须跟踪通常是临时的状态,并根据当前状态允许/禁止操作。

是否有一些特定的技术可以帮助解决这种复杂问题?是否有任何实用文献可以更详细地描述一些内容?

1 个答案:

答案 0 :(得分:0)

良好的观察者模式是处理此类案件的主要模式,也许是唯一的模式。虽然它有变化,如消息驱动的协作,pub-sub,主题或基于标签的协作,但大多数都重用了观察者模式的意识形态。

现在要适应复杂性。通常,事件观察员和出版商本质上是无国籍的。即他们接收和事件,他们要么传播他们或消费他们。现在传播很容易,但消费的意义可能很棘手,因为消费的含义可能因目标和事件类型而有所不同。 然后,存在与生产和消费事件的操作性能相关的复杂性。在这里,良好的设计往往会使事件彼此互相排斥。这意味着两次单击一个按钮或两次文件写入不会以任何方式相互依赖。同样应该是关于事件消费的情况。消费过程不应取决于事件的到达顺序。

一个好的事件观察者设计利用无状态生产者和消费者,域驱动的事件对象(一个知道应该去哪里的事件对象)以及生产和消费的并发性。