目前我正在研究设计模式,并且我已经找到了一个部分,我很困惑观察者模式是使用推动机制还是利用拉动机制?
我已经阅读了不同的实现,并不能真正确定哪一个是正确的.
此外,我想知道推模型对拉模型的三个直接优势.我猜其中一个是推模型比拉模型更少耦合?
Ama*_*eep 20
定义:Observer模式定义了对象之间的一对多依赖关系,这样当一个对象改变状态时,它的所有依赖关系都会自动得到通知和更新
需要关注的3件事:
目前我正在研究设计模式,并且我已经找到了一个部分,我很困惑观察者模式是使用推动机制还是利用拉动机制?
混乱可能是因为你是文学名字 - 拉或推.
请注意,在这两种机制中,Observable对象始终有责任通知所有已订阅的观察者,但不同之处在于观察者是否[Push - >]获得所需的确切数据,或者[Pull->]获取数据包装在某个对象(主要是Observable对象)中,它必须从中提取所需的数据.
我已经阅读了不同的实现,并不能真正确定哪一个是正确的.
这里不是纠正的问题,实际上两者在任何情况下都能正常工作.如果我们看到这两种机制的以下细节,那么它最适合于特定场景/情况,可以轻松分析.
此外,我想知道推模型对拉模型的三个直接优势.我猜其中一个是推模型比拉模型更少耦合?
我可能无法提供3个优点,但如果我能通过使用用例示例清楚地了解使用方法,请让我尝试一下:
推动机制
拉机制
参考
use*_*850 -2
观察者模式使用推送,因为可观察对象将通知推送给其订阅者。
推与拉(主要在网络中): 推 - 服务器向客户端发送(推)通知,这意味着它需要持续跟踪它们的地址(URI)或更一般情况下它们的引用。
拉 - 客户端负责从服务器请求新数据。
该模式不仅适用于 Web,而且广泛使用,例如桌面应用程序。