2010年02月1日 at 9:34 am
#1177
Keymaster
前段时间在外旅游,未能及时答复,非常抱歉。以下是我的回复——
1.状态与事件可以相互推演——一方面可以把状态看作对事件的响应,另一方面可以把事件看作状态的迁移。从这个角度说,与其说把state与event看作并列的二维变量,不如说把二者看作一种(数学上的)对偶(duality)关系。
2.状态与事件的确相关,但区别也是很明显的——状态对应的是时间上的一个区间(interval),而事件对应的是时间上的一个点(point)。所以“当前状态”的说法很普遍,但“当前事件”的说法比较少见,因为状态是持续性的,而事件是瞬时性的。
3.事件驱动式的卖点是一个对象可以同时为多个对象传递信息,还能在时间和空间上保持松耦合关系。而状态模式的卖点是在缺乏动态继承机制下实现一个对象状态的演进。