温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:01
我们来看一下观察者模式的它的基本的原理,或者叫工作原理,那观察者模式我们可以这样去思考。我们大家想一想哈。就是我们这个观察者模式呢,有点类似于定牛奶的业务,或者叫订报。定报纸、订杂志的这么一种业务。我们可以把气象局看成是一个奶奶站,就是订奶的地方,订牛奶。那么我们的第三方网站或者第三方我们认为是用户。OK,那么如果是气象局的话呢,我们就可以把它当做是一个subject。OK,那第三方呢,我们认为就是一个用户,或者叫做observe观察者。那同学们想一想。对于一个这个气象局而言,或者对于这个牛奶站而言,那么如果你要去。去订牛奶你会做什么呢?我们这这个牛奶站肯定会有这样子,首先他要注册,我们看看有哪些人想来订牛奶,所以说我们这会提供一个register。
01:09
同时呢,我们还有一个remove or为什么呢?因为你有些人可能订,订完这个牛奶以后呢,他又觉得我不想,我不想订了,或者他就订一年,到一年以后呢,我就把它remove掉。就他就不是我们的用户了,还有一个呢,Notify这个很重要。就是当我们订完这个牛奶以后,你也不用管了,我,我把这个牛奶直接送给你,怎么送给你呢?我通知你就行了,比如说我把牛奶送到你的家,然后呢。放到放到那个牛奶罐里面,然后发个短信,诶,OK,就通知你了,你自己去拿。你自去了,所以说在这个subject里面呢,会有三个核心的方法,一个叫register observe,一个叫remove observe,一个叫notify observe observers,一个S,所以从这也可以看出来,一个是注册,一个是移除,一个是通知他通知什么,通知所有注册的用户,根据不同的需求,可以是更新数据让用户来取,也可以是实实时推送,看具体需求。
02:09
那待会儿呢,我们就可以具体的给他推送过去就行了。好,所以说从这可以看出来,我们刚才的这一个气象站天气预报其实类似于电影由来的业务,因此呢,我们可以用观察者模式来解决,那么我们把气象站看成是一个。Subject在这个地方,我们subject就相当于是一个什么呢?Why the data we这个玩意。好,那这个完了过后,我们的observe是谁呢?来看一下,如果从这看observe呢,就是我们的接收输入方。这个observe里面呢,一定会有update的方法,为什么?因为我一旦有有最新消息,比如说牛奶站或者是气象局有最新消息,我就调你的update,把信息推送给你就可以了。
03:01
因此,从这里看出来,观察者、模式对象之间是多对一的依赖的一种设计方案。他们的关联关系其实一对多,为什么呢?被依赖的对象就是subject。和以来的对象observe,那么subject通过通知observe变化,比如说奶站是subject,是一的一方,用户是oper,是多的一方,那如果放在我们这讲的气象站来说,气象站是一的一方,而我们的接入方。比如说新浪的。啊,也可能是网易的网站,也可能是气象局自己的网站,他们是多的地方,比如他可以对对吧,我可以注册进去,然后我这有变化,我就啪一个notify通知你所有的网站,只要你在这注册过。你在我们这个气象站注册过,我就通知你。这个就是我们观察者模式的一个原理,还是比较简单,但是很实用。好,那关于观察者的模式,基本原理就这么一点,那下面呢,我们准备走代码给大家实现一把,好实现呢,我们放在下个视频。
我来说两句