生产/消费和订阅/发布,消息/事件/任务的一些区别

以前我经常搞不清生产/消费和订阅/发布的区别。消息和事件的区别。因为在我看来这几种模式的行为都差不多。今天就把这几个区别稍微理一下。

伪代码中带#的算作隐含步骤。根据实际逻辑,可能会忽略,但实际上还存在这样的过程。

生产/消费

举个例子:

小明的妈妈做饭,小明家人吃饭
生产者:小明妈妈
产品:饭菜
消费者:小明家人

代码如下

生产者 = new 生产者()
消费者 = new 消费者()
产品 = 生产者->生产产品()
# 这里有一个隐含逻辑, 生产者并没有把产品交给消费者,而是消费者主动获取的
# 因为代码过于简单,所以没体现出来
消费者->消费(产品)

从上述代码中能看到3个角色

  1. 生产者,具有生产产品的方法
  2. 消费者,具有消费产品的方法
  3. 产品

由此可以提取出两个接口和一个抽象

  • 返回产品的生产接口
  • 把产品作为参数的消费接口
  • 产品抽象

最后可以得到如下定义

  • 具备生产接口的对象都可以叫做生产者
  • 具有消费接口的对象都可以叫做消费者
  • 生产者和消费者 的产品对象的抽象一样的情况,就叫做生产/消费模式

生活永远会有不一样的情况
如下例子

手机公司生产手机,并把手机放到了商店进行售卖
小明从商店购买了手机
生产者&

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值