问题很简单。一个对象需要通知一些观察者可能感兴趣的事件。Ruby中.NET事件的等价物是什么?
当我坐在验证一个我现在用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]对象的队列,当事件发生时需要调用该对象。
不完全......这似乎是观察者设计模式的实现。我需要的是锅炉对象公开多个事件,例如WaterExhausted,Started等,以及客户订阅他们的处理程序(不限于一个'更新'方法) – Gishu 2008-10-29 09:19:04