Pypubsub为您的Python应用程序提供了一种解耦其组件的简单方法:应用程序的某些部分可以发布消息(带有或不带有数据),其他部分可以订阅/接收它们。这允许消息“发件人”和消息“侦听器”彼此不知道: 一个不需要导入另一个 发件人不需要知道 “谁”得到消息, 监听者将如何处理数据, 甚至任何侦听器都将获取消息数据。 同样,听众也不必担心消息的来源。 这是用于实现模型-视图-控制器体系结构或任何促进其组件解耦的类似体系结构的好工具。
Pypubsub为您的Python应用程序提供了一种解耦其组件的简单方法:应用程序的某些部分可以发布消息(带有或不带有数据),其他部分可以订阅/接收它们。这允许消息“发件人”和消息“侦听器”彼此不知道:
这是用于实现模型-视图-控制器体系结构或任何促进其组件解耦的类似体系结构的好工具。
从PyPubSub到PyDispatcher到简单的“自制”类,似乎有很多Python模块可以在网上浮动发布/订阅。
比较不同的模块时是否有特定的优点和缺点?对哪些模块进行了基准测试和比较?
提前致谢
PyDispatcher在Django中大量使用,并且对我来说非常有效(我想对于整个Django社区)。
我记得有一些性能问题:
据我所知,您不太可能在中小型应用程序中遇到此问题。因此,这些问题可能与您无关。如果您认为需要每一个性能(过早的优化是万恶之源!),则可以查看对Django中PyDispatcher所做的修改。
希望这可以帮助。