码迷,mamicode.com
首页 > 其他好文 > 详细

发布-订阅模式

时间:2021-04-16 11:41:15      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:执行   div   src   name   没有   图片   inf   style   media   

模拟订阅报纸:
技术图片
技术图片
技术图片
消费者与出版社之间没有联系,甚至互不相识,但报纸却从出版社到达了消费者手中,发布-订阅模式就是通过模拟订阅报纸,实现消息在模块之间的传递、模块与模块之间的调用。

Python样例
from blinker import Namespace


# 创建一个Signal,其名为test
my_singal = Namespace()
test = my_singal.signal(test)


# 创建一个方法singal_sender,内部包含两个发送者
def singal_sender():
    # 发送者test1
    test.send(test1, data1=1)
    # 发送者test2
    test.send(test2, data2=2)
    print(singal_sender() 执行完毕)


# 订阅者,指定接收test1
@test.connect_via(test1)
def subscriber(sender, **kwargs):
    print("指定接收test1", sender, kwargs)

# 订阅者,指定接收test2
@test.connect_via(test2)
def subscriber(sender, **kwargs):
    print("指定接收test2", sender, kwargs)

# 订阅者,不指定接收,全部发布都要接收
@test.connect
def subscriber(sender, **kwargs):
    print("不指定接收", sender, kwargs)

singal_sender()

 

发布-订阅模式

标签:执行   div   src   name   没有   图片   inf   style   media   

原文地址:https://www.cnblogs.com/zwgao/p/14661710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!