是否有管理事件的“量子状态变化”的有用模式?(特别是在JavaScript中)

Is there a useful pattern for managing "quantum state changes" for events? (specfically in JavaScript)

本文关键字:模式 特别是 JavaScript 有用 变化 事件 管理 是否 状态      更新时间:2023-09-26

有各种各样的方法可以单独响应事件。但是,我反复遇到这样的现象,我想更改多个属性,然后在进行所有更改后响应状态。

经典案例 - 我有一个包含帐户事务的数据网格。当我从一个帐户更改为另一个帐户时,我还会更改日期范围和排序键/顺序。这是三个属性(accountID,排序,dateRange),但我不想独立触发三个更改事件 - 至少,当我切换帐户时不会。但是,这些状态确实具有基础观察程序,因为当最后两个状态更改时,来自用户交互。

有没有任何智能方法来管理参数的量子变化,与参数的单个变化分开?您始终可以使用全局 state_is_changing 属性来在逐个更改事件时中和事件,但是当您"取消挂钩"state_is_changing属性时,您必须从更高级别重新轮询您的状态,或者让事件效果"排队"在更改期间触发。

这些解决方案似乎都不优雅。

有谁知道一种设计模式,您可以在其中优雅地管理事件系统中的战术和量子状态更改?

你已经用观察者模式标记了这个,但听起来你想要的是中介模式......它侦听各种来源并提供更高级别的逻辑。

读一读,看看它是否适合你的想法:http://addyosmani.com/largescalejavascript/#mediatorpattern