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