推模型与拉模型
拉模型。。
推模型:将数据推送给观察者,有限制性,不利于复用
拉模型:类推模型,将事物自身传递给观察者,由观察者从中取值
观察者实现的两种模式:


区别:
推模型假定目标知道观察者需要的数据
拉模型不知道目标对象需要什么数据,把自身传递给观察者,由观察者取值
推模型使观察者对象复用性比较差
观察者模型的实现方式:
一、推模型
目标对象主动向观察者推送目标的详细信息,推送的信息通常是目标对象的全部或部分数据
二、拉模型
目标对象在通知观察者的时候,只传递少量信息。
若观察者需要更具体的信息,由观察者主动到目标对象中获取,相当于观察者从目标对象中拉数据。
一般会把目标对象自身通过update方法传递到观察者
比较:
1、推模型是假定目标对象知道观察者需要的数据;拉模型不知道observer需要什么数据,因此把自身传给observer,由观察者来取值
2、推模型使observer对象难以复用,拉模型传递的是目标对象本身,满足各种需要
比较
拉模型
推模型:广播