问题标签 [observer-pattern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
343 浏览

javascript - 每次值更改时运行一个方法

我想知道你们中是否有人可以帮助我解决我认为观察问题的问题。

我有一个元素(更具体地说是 svg),每次更改某处的值时我都想更新它。

我有变量: GetThreadTree().treeBoxObject.getFirstVisibleRow()最初是 0。我想运行function updateCanvas()每次GetThreadTree().treeBoxObject.getFirstVisibleRow()更改的值。

我所拥有的是:

但是它只调用updateCanvas()一次,当它第一次被调用时,并且由于某种原因不执行它之后的代码。我检查了错误控制台,没有任何东西。

有任何想法吗?

0 投票
4 回答
8849 浏览

java - 如何使用 Java RMI 实现观察者模式?

我有一个客户端在服务器上启动一个长时间运行的进程。每隔一段时间,我想向用户展示后台发生的事情。最简单的方法是轮询服务器,但我想知道是否没有办法为此实现观察者模式。不幸的是,我正在使用 RMI 与服务器通信,我担心我必须为此将我的客户端变成 RMI 服务器。

还有另一种我想念的方式吗?

0 投票
3 回答
1137 浏览

c# - Observer for .Net 的替代设计模式

我最初打算在 C# 3.0 中实现一个观察者模式来解决我的问题,尽管它不会以完全相同的方式实现。

我的问题是我有一个 Web 应用程序,其中包含可以发布消息的用户。通知不直接发送给其他用户,而是发送到分布式缓存,其中更新了统计对象,用户可以检查统计信息并决定他们是否想要更新。

我目前有一个 IObserver 接口,需要根据谁发布消息以及他们如何发布消息来实现多个 Update() 方法。

我还查看了中介者模式,但我认为它不合适,因为中介者的实例没有当前登录者的列表。

我现在想知道是否有另一种更合适的既定设计模式,或者我是否应该完成构建我当前的观察者模式以满足我的需求。

谢谢

0 投票
2 回答
409 浏览

ruby-on-rails - 在 observe_form 上同时使用 :url 和 :function

有没有办法在同一个 observe_form 标记中同时生成 Javascript 函数调用和 Ajax 调用?例如,像这样:

谢谢!!

0 投票
5 回答
1657 浏览

ruby-on-rails - Rails 的 Django 信号等价物?

在 Rails 中,我见过的最接近Django 信号的是Observers。它们的问题在于它们仅限于触发与模型生命周期相关的硬编码事件的回调。

Django 信号可以在任何地方创建、在任何地方触发和在任何地方处理。模型生命周期回调只是碰巧内置并由 ORM 触发的常规信号。

有谁知道 Rails 的类似通用解决方案?它可以是一些通用的 Ruby 库,不依赖于 Rails,这样会更好。


编辑:观察者是最接近的东西,但这不是我想要的。这是一个一对多的解决方案。任何人都可以收听,但只有发起对象可以发帖。我想要你声明一个信号的东西,任何人都可以触发它以及处理它。此外,我不喜欢 Ruby Observer 规定处理程序具有 #update 方法的事实。我希望能够使用适当的签名传递任何方法引用。

我可以使用 Ruby Observer 来实现我自己的此类代理,但我正在尝试了解是否有人已经这样做了。

0 投票
8 回答
150055 浏览

c# - 带有委托的 C# 观察者/可观察的超级简单示例

我最近开始深入研究 C#,但我一生无法弄清楚在语言中实现观察者/可观察模式时委托是如何工作的。

有人可以给我一个超级简单的例子来说明它是如何完成的吗?我已经用谷歌搜索了这个,但我发现的所有示例要么过于具体,要么过于“臃肿”。

0 投票
8 回答
504 浏览

design-patterns - 一个类是可观察的和观察者可以吗?

有一个代码气味的时刻,无法决定一个类是否可以被观察并且也是一个观察者,所以我想我会在这里发帖。

想法?破坏 SRP?

0 投票
2 回答
14107 浏览

php - 如何触发在magento中收到的付款事件?

问候,在 Magento 中,我想触发一个事件,一旦订单被设置为处理(通过网关确认或手动),例如:如果普通客户(id 1)花费超过 100 美元并且付款已经确认,设置他的组 id 为 4(银 VIP,根据促销规则在全球范围内获得 2% 的折扣)

编辑:到目前为止我收到的答案只是部分答案,我也发现链接非常混乱,我不清楚什么是最小设置,我必须配置什么创建等等......我也在尝试了解如何获取付费客户 ID/型号。

0 投票
5 回答
9242 浏览

objective-c - 在 Objective-C 中观察文件或文件夹

收听文件夹或文件以查看它是否已保存或是否已添加新文件的最佳方法是什么?

0 投票
4 回答
255 浏览

tcp - 分布式环境中的观察者

机器 A 需要向机器 B 发送消息。机器 A 具有静态 IP,但机器 B 没有。

我可以想到的解决此问题的一个选项是机器 B 打开与机器 A 的 TCP 连接,然后机器 A 将数据/消息发送到机器 B。但是,此解决方案具有以下限制:

a) 如果有很多机器(如机器 B)向其发送数据,则它是不可扩展的。这可能会破坏机器 A 的资源。

b) 机器 A 需要在需要时发送数据。机器 B 不知道什么时候会有数据。在当前的设计中,机器 B 将不得不通过 TCP 连接反复轮询机器 A,询问它是否有任何数据。如果有很多机器 B,这可能会变得昂贵。

有没有更便宜的方法来解决这个问题?观察者设计模式浮现在脑海中。机器 B 可以订阅来自机器 A 的通知,以便在数据可用时通知它。但是,当机器 B 没有静态 IP 时,如何在分布式环境中实现该模式?

除了观察者之外,除了使用机器 A 的原始套接字将数据发送到机器 B 之外,还有其他方法会更便宜吗?