实现观察者的惯用扭曲方式是什么?

时间:2014-07-24 00:07:01

标签: python twisted

我有一个类,它通过我的应用程序封装了数据库访问,并且我希望在数据库中的行发生更改时通知应用程序的其他部分。现在,我正在维护一个回调函数列表,当我需要发送通知时,我会及时创建一个DeferredList。这似乎是超级愚蠢的 - 是否有更惯用的方式?

示例代码:

class Db(object):
  def __init__(self):
    self.observers = []

  def _on_notify(self, notify):
    # called by the db connection
    DeferredList(*[Deferred().addCallback(observer) for observer in self.observers]).callback(dict(notify=notify, db=self))

  def observe(self, callback):
    self.observers.append(callback)

0 个答案:

没有答案