我只是想听听关于在 twisted 中正确使用 EventListener/EventSubscription 提供程序的想法。大多数示例和扭曲的源代码通过特定方法以非常硬的耦合处理事件。这些事件的调度目标方法在特定的协议类中“硬编码”,然后继承类有责任覆盖这些方法以接收“事件”。当我们在创建协议时知道所有潜在的订阅者时,这是非常好的和透明的使用。然而,在较大的项目中,需要(也许我的思维方式错误)更动态的事件订阅和订阅删除:想想数百个生命周期为一分钟的对象都对同一事件感兴趣。根据“扭曲的方式”,实现这一目标的正确方法是什么。
问问题
389 次
1 回答
1
Twisted 有一个包“twisted.words.xish.utility.EventDispatcher”,pydoc 就知道用法了,很简单。然而,我认为让 Twisted 强大的是它的“延迟”。您可以将 Deferred 对象视为相关事件的闭包(正常,失败),回调,回退是注册的观察者函数。Deferred 具有高级功能,例如可以嵌套。所以在我看来,你可以在 Twisted 中使用默认的 EventDispatcher,或者发明一些简单的新的。但是如果你在 Twisted 中引入一些复杂的机制,它注定会导致混乱和混乱。
于 2012-04-19T07:43:17.200 回答