高效编码:推模式而不是拉

本文关键字:模式 编码 高效 | 更新日期: 2023-09-27 18:34:57

考虑x的值每秒都在变化。

我需要每秒监控 x,并在它超过特定值时执行任务。

处理此问题的一种方法是使用 IF 语句并每秒比较一次值。

然而,在我的情况下,它每 4-5

小时只触发一次,但我们不知道它在这 4-5 小时内触发哪一秒。

问题

而不是浪费大量的处理能力并使用IF块每秒进行比较。有没有其他替代方法,我可以在大部分时间保持空闲状态,并期望代码仅在发生这种情况时才通知或触发事件?即保持空闲 4-5 小时,除了值达到所需数字的一秒钟。

高效编码:推模式而不是拉

看看观察器设计模式,这应该符合您的需求

更改值

服务(或任何值服务(应提供注册侦听器的选项,然后在值更改时引发事件以通知所有侦听器

查看 https://en.wikipedia.org/wiki/Comet_(编程(,以防您需要处理客户端服务器(如设置(。