【发布时间】:2010-09-19 18:04:32
【问题描述】:
问题很简单。一个对象需要通知一些观察者可能感兴趣的事件。
当我坐下来验证我现在用 Ruby 编写的设计时,只是为了验证它。我发现自己对如何实现对象事件感到困惑。在 .Net 中,这将是单行的。.Net 还进行处理程序方法签名验证等。例如
// Object with events
public delegate void HandlerSignature(int a);
public event HandlerSignature MyEvent;
public event HandlerSignature AnotherCriticalEvent;
// Client
MyObject.MyEvent += new HandlerSignature(MyHandlerMethod); // MyHandlerMethod has same signature as delegate
是否有一个 EventDispatcher 模块或我缺少的东西可以绑在 Ruby 类上?希望得到一个符合 Ruby 的最小惊喜原则的答案。 事件是事件的名称加上事件发生时需要调用的 [observer, methodName] 对象队列。
【问题讨论】: