设计模式——黑板模式

黑板模式

黑板模式(Blackboard Design Pattern)是观察者模式的一个扩展允许消息的读写同时进行,广泛地交互消息。

黑板模式允许多个消息读写者同时存在,消息的生产者和消费者完全分开,两者在空间和时间上可以解耦,并且互不干扰。

黑板模式是消息的广播,主要解决消息的生产者和消费者之间的耦合问题,核心是消息存储(黑板),它存储所有消息,并可以随时被读取。当然,消息的写入者也可以变身为消息的阅读者,读写者在时间上解耦。对于这些消息,消费者只需要关注特定消息,不处理与自己不相关的消息,这一点通常通过过滤器来实现。


黑板模式的实现方式

黑板模式常见的有两种实现方式:数据库作为黑板消息队列作为黑板

(1)数据库作为黑板

利用数据库充当黑板,生产者更新数据信息,不同的消费者共享数据库中信息,这是最常见的实现方式。该方式在技术上容易实现,开发量较少,熟悉度较高。缺点是在大量消息和高频率访问的情况下,性能会受到一定影响

在该模式下,消息的读取是通过消费者主动“拉取”,因此该模式也叫做“拉模式”。

(2)消息队列作为黑板

以消息队列作为黑板,通过订阅-发布模型即可实现黑板模式。这也是黑板模式被淡忘的一个重要原因:消息队列(Message Queue)已经非常普及了,所有大多人只记得消息队列不记得黑板模式。在该模式下,消费者接收到的消息是被主动推送过来的,因此该模式也称为“推模式”。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥羊汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值