问题标签 [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.
java - 如何为 web 应用程序创建客户端通知服务,或者我应该使用观察者模式?
我有一个完全实现的 DAO,我所有的 bean 都继承了一个 Entity 对象。现在,我想创建一个客户端通知系统,当用户在持久性存储中创建/更新/删除实体时,通知会自动通过电子邮件发送给客户端。
我有一个 DAO 管理器,它使用工厂模式根据实体类型向我返回一个 DAO 管理器。
每个管理器都有一个 create()、remove()、update() 方法....
我的第一个想法是让我的所有实体管理器都继承一个观察者接口,并在函数调用(创建、删除、更新等)之后发送通知。
这是一个明智的想法吗?如果没有,我该怎么做才能向客户发送通知?
我正在运行 JBoss 5 或 Tomcat 6(或两者都用于轻松部署)和 Apache Struts(尽管我不明白我提到它的原因)。
提前致谢。
.net - .NET 中的远程 Observables
我一直遇到这种情况,但除了本土解决方案之外从未找到任何解决方案:
- 您查看订单列表
- 当您对这些订单进行更改时,它们会在查看同一列表的任何其他客户端屏幕上动态更新,反之亦然
我称这个想法为“远程可观察对象”......不确定它是否有更好的名字。
您可能会争辩说这可以通过轮询或不断刷新您的浏览器页面来完成,但我已经看到了更好的方法(套接字、花哨的增量跟踪等)。
数以万计的框架让您可以将您的对象/数据暴露给远程客户端......但老实说,我无法说出您自动获得对该数据进行流式更改的任何地方。
我是否错过了一个惊人的秘密框架?坚持写我自己的?
ruby-on-rails - 在 Rails 中创建新模型实例时发送电子邮件的最佳方式是什么?
我有一个具有以下型号的应用程序:User
、Task
和Assignment
。每个分配belongs_to
一个用户和一个任务(或者换句话说,一个任务通过一个分配分配给一个用户)。
一旦用户完成了一项任务,该任务就会被标记为完成,并且应用程序会立即创建一个新任务(或者换句话说,将任务分配给其他人)。
创建此新作业后,我想立即向新受让人发送电子邮件。我知道我可以通过以下三种方式之一来做到这一点:
- 在我的控制器中明确发送电子邮件。
- 在分配模型的回调中发送电子邮件。
- 在 Assignment 模型上创建一个观察者并发送电子邮件
after_create
。
人们认为哪些选项最好,为什么?#1 对我来说似乎很糟糕,因为我不想记住在每个可能完成作业的操作中发送它。我听过一些人说 Rails 观察者很糟糕,应该避免,但我不确定他们是否是我应该信任的人。还有其他意见吗?
c# - 为什么观察者模式在 C# 中比在 Ruby 中复杂得多?
我在Russ Olsen 的“Ruby 中的设计模式”中阅读了 如何在 Ruby 中实现观察者模式。我注意到这种模式的 Ruby 实现比 C# 实现简单得多,例如Jesse Liberty 和 Alex Horovitz 在“Programming .NET 3.5”中展示的实现。
因此,我使用“Ruby 中的设计模式”算法重写了“Programming .NET 3.5”观察者模式示例(pdf 版的第 251 页),两种实现的源代码都可以从上述网站下载。
下面是重写的例子,告诉我你怎么看?
我们真的需要使用事件和委托来使用 C# 中的观察者模式吗?
更新
阅读评论后,我想问这个问题:
除了使代码更短之外,还有其他理由使用委托和事件吗?而且我不谈论 GUI 编程。
Update2 我终于明白了,委托只是一个函数指针,事件是委托的更安全版本,它只允许两个操作 += 和 -=。
我对“Programming .NET 3.5”示例的重写:
这里提到了Ruby代码:
这是我重写的“Programming .NET 3.5”示例:
c++ - C++中的观察者设计模式
观察者设计模式是否已经在 STL 中定义(如 Java 中的 java.util.Observer 和 java.util.Observable)?
design-patterns - 使用 java.util.Observer 跟踪类中的静态方法调用
我是初学者程序员,想知道如何解决这个问题。我要解决的问题是使用 java.util.Observer 在我的程序中记录静态方法调用。
显然,我原来的帖子一定只是让人们感到困惑,所以我将把它留得更开放:任何人都可以建议一种方法来保持静态方法计数在扩展 Observable 的类上吗?
感谢您的关注
ruby-on-rails - 尝试使用观察者和 STI 时出现 TypeError
我正在尝试遵循实现成就系统的线程(位于如何在 RoR 中实现成就系统),并且在保存对象并授予方法时遇到 TypeError?被调用。错误看起来像:
模型逻辑与上一个问题中的定义完全相同:
知道这里发生了什么吗?
更新: 根据下面的信息,我最终删除了抽象并将奖励方法直接放在每个控制器中。不是很干,当我有时间更多地使用它时,我会尝试再次将它抽象出来,但现在可以了。一个例子:
ruby-on-rails - Ruby on Rails 自定义观察者
谁能建议如何在 Ruby on Rails 中使用自定义观察者或事件/回调?
我已经尝试过这两个帖子:
http://www.mutuallyhuman.com/2009/1/6/using-custom-activerecord-events-callbacks 和 http://alexkira.blogspot.com/2008/10/custom-observer-callbacks-in-rails。 html
似乎没有一个工作。在第二篇文章中,我将 Alex Kira 的 CallbackObservable 模块放在 lib/callback_observable.rb 中,这是放置它的正确位置吗?
非常感谢任何反馈。
ruby-on-rails - 如何在 Rails 中为每个表创建完整的审计日志?
我们最近开始在我们的公司推动合规性,并且需要保留对当前在 Rails 应用程序中管理的数据的完整更改历史记录。我们已经被允许简单地将每个操作的描述性内容推送到日志文件中,这是一种相当不引人注目的方式。
我的倾向是做这样的事情ApplicationController
:
然后创建一个看起来像这样的观察者:
总的来说,这很好用,但是在使用<association>_ids
附加到 has_many :through => 关联的“魔术”方法时会失败。
例如:
这将最终触发关联after_create
新Runway
记录的时间,但不会触发删除before_destroy
a的时间。RunwayModel
我的问题是......有没有办法让它工作,以便它观察这些变化(和/或可能的其他删除)?
是否有更好的解决方案仍然相对不引人注目?
zend-framework - 原型中的“点击”观察者
我有一个包含多个 div 的页面(每个都有一个唯一的 ID 和相同的类,'父')。在每个“父” div 下方,是一个具有“子”类和唯一 ID 名称 -child 的 div。此 DIV 在页面加载时为空。
每当您单击父 DIV 时,都会执行以下代码。
当然,一个子节点有可能再次成为它自己的父节点。响应如下所示(Smarty with Zend Framework):
每当我单击加载在孩子内部的“父” div 时,什么都不会发生:( 任何建议/修复如何解决这个问题?