推模型 vs 拉模型:两种数据传递方式 推荐一个学习网站,http://easelearningai.com输入学习主题,会根据你的知识背景,帮你把学习内容讲得通俗易懂。概要简单说,观察者模式里的“推模型”和“拉模型”,就是一个消息该由发送方主动塞给你,还是由你主动去取。就像你订阅了一份报纸:推模型是邮递员每天把报纸送到你家门口;拉模型是报纸放在报摊上,你想看的时候自己去拿。这两种方式没有绝对的好坏,关键看场景。今天我们就来聊聊,为什么会有这两种设计,它们各自解决什么问题,以及在实际开发中该怎么选。整体架构流程从“通知”这件事说起想象一个典型的观察者模式场景:天气站(被观察者)检测到温度变化,然后通知所有显示屏幕(观察者)更新数据。最早的设计很简单:天气站一有变化,就把所有数据(温度、湿度、气压)打包成一个消息,发给每个屏幕。屏幕收到后,直接更新显示——这就是推模型。但问题来了:如果某个屏幕只关心温度,不关心湿度和气压呢?它还是得接收全部数据,白白浪费了处理时间。如果天气站每秒变化100次,每次都要打包所有数据发出去,网络和CPU开销很大。于是有人想:能不能让屏幕自己决定要什么数据?天气站只发一个“我变了”的信号,屏幕收到信号后,自己来查需要的数据——这就是拉模型。两种模型的流程对比步骤推模型拉模型1. 状态变化天气站温度变了天气站温度变了2. 通知方式