首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“通知和检查”公共架构的名称?

“通知和检查”公共架构的名称?
EN

Stack Overflow用户
提问于 2020-08-08 23:30:19
回答 1查看 131关注 0票数 1

基本的公共建筑问题。在较高的层次上,在设计pubsub时,我有时会面临两种体系结构之间的选择:

  1. 发布突变或“新状态”.

一些DB状态发生了变异,发布者通过pubsub通知该更改。但是它们在消息中包含了足够的信息,这样订阅者就不需要对DB进行查找了。假设订阅服务器拥有DB的缓存。它可以接收突变或新状态,并在不进行查找的情况下更新缓存。

  1. Notification-and-check发布者只通知“有一个新的变化”,这会促使订阅者从DB中提取最新的内容。这是更有力的海事组织。pubsub可能无法保证交付顺序,如果突变为order-sensitive.

,则该体系结构对此非常健壮,而#1则不然。

我的问题是,这两种类型的体系结构是否有一个共同的名称?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-08-09 12:46:44

在“四人帮设计模式”一书中,发布/订阅称为观察者模式。在第298页,他们把这两个变体描述为推拉模型。

观察者模式的

实现通常让subject广播有关更改的附加信息。主题将此信息作为参数传递给Update。信息量可能差别很大。

在一个极端(我们称之为push模型),不管他们是否愿意,主体都会发送有关更改的详细信息。另一个极端是拉模型;主题只发送最少量的通知,观察者随后会显式地要求详细信息。

拉力模型强调被试对观察者的无知,而推送模型则假设被试对观察者的需求有所了解。push模型可能会降低观察者的可重用性,因为Subject类对观察者类的假设可能并不总是正确的。另一方面,拉模型可能效率低下,因为观察者类必须确定在没有来自主题的帮助下更改了什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63321138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档