随着时间的推移对 (UI) 事件的模式作出反应
Posted
技术标签:
【中文标题】随着时间的推移对 (UI) 事件的模式作出反应【英文标题】:Reacting to patterns of (UI) events over time 【发布时间】:2015-07-24 15:57:21 【问题描述】:随着时间的推移寻找事件模式并触发新事件的表达方式是什么?
例如,用户界面事件通常是简单事件的模式,例如 mousedown/up、mousemove 或 keyup/keydown。
拖放交互需要监听 mousedown 事件,然后是一些 mousemove 事件,然后是 mouseup,并查看可拖动/可放置 UI 对象是否是不同事件的目标。此外,您可能希望有一个时间和距离阈值,以避免在用户可能尝试单击时触发拖动,并且您可能希望查找修饰键,或使用 Escape 来取消交互。
处理这些事情,因为单个事件侦听器的数量很快变得复杂且容易出错,调试起来很棘手,并且经常导致不同事件之间发生冲突。
简洁明了地表达这些模式的常用抽象是什么?
【问题讨论】:
【参考方案1】:Composite 模式作为一种结构化代码的方式跳入脑海,因为您拥有组合形成复杂事件的原始事件,而所有事件都符合基本接口。
对于行为模式,我们直观地认为事件是可观察的;但在复合事件的情况下,我们也可以将其视为Observer,其中一个复杂事件观察一个或多个原始事件。
【讨论】:
以上是关于随着时间的推移对 (UI) 事件的模式作出反应的主要内容,如果未能解决你的问题,请参考以下文章
java自定义事件,线程a如何每一秒钟触发一个事件,然后另一个线程b监听之,并作出反应?
Grafana/Timestream:如何随着时间的推移可视化某些事件的数量