码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈“观察者模式”那点小事儿

时间:2018-05-16 22:41:08      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:博客   代码   必须   创建   nbsp   定义   员工   img   观察者   

首先先了解一下什么是“观察者模式”?

所谓“观察者模式”又称“发布订阅模式”,是以一对多的形式存在的;当一个物体方生变化的时候,会通知所有物体去接受这个事件。例如:当服务端发送消息的时候,会通知所有客户端的用户都会接受到这个消息。

官方一点来说:这是一种创建松散耦合代码的技术。它定义对象间 一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。由主体和观察者组成,主体负责发布事件,同时观察者通过订阅这些事件来观察该主体。主体并不知道观察者的任何事情,观察者知道主体并能注册事件的回调函数。

也许了解完概念,还是不知道观察者模式到底是一个什么东西,下面来举个栗子:

首先,我们先创建一个公司:公司肯定会有很多员工,所以用一个数组去存放员工们;员工们怎么来的呢?那肯定公司得去做招聘员工这件事,所以要有招聘的方法;公司每个月还得必做的一件事就是给员工们发工资啦,所以公司还需要一个发工资的方法,方法用一个循环将工资发到每个员工手上。

公司需要做的事大概就先这么多吧!

技术分享图片

接下来,就是创建员工咯!我就创建两个员工为例吧,反正员工需要做的事都是一样的,同理可得就可以!

员工必要的属性就是姓名,所以必须给员工传递一个姓名的参数;员工去公司工作肯定也是为了emm...money啦,毕竟“钱不是万能的,但是没有钱是万万不能的呀!!没有钱就不能买零食,不能买漂漂的小裙子,不能....”停,我们还是不扯远了,所以呢,员工每个月必做的肯定就是领工资啦,所以我们要给员工一个领工资的方法。

员工也创建好了,我们就可以实际的将公司和员工们联系起来了。

技术分享图片

我们先new一个公司的实例化对象,叫作qianfeng,作为公司肯定是需要招聘员工,我们就可以用前面创建的两个员工,把名字作为参数传进去,然后参加公司的招聘,接下来公司就做发工资的方法就可以了,员工们只需静等工资到账就ok了。

技术分享图片

这就是整个“观察者模式”的大概流程。

我们从头再好好缕缕开头说的“观察者模式”的概念:所谓:一对多的形式在这个栗子中,就是一个公司对很多员工们的形式;当一个物体方生变化的时候,会通知所有物体去接受这个事件,在这个栗子中的体现是公司给员工们发工资,只是公司一方发生变化,而所有的员工都收到了工资。

我的分享就简单的到这里了。

若是仍不理解,推荐一位大神的博客仅供参考:http://www.cnblogs.com/nanianqiming/

 

浅谈“观察者模式”那点小事儿

标签:博客   代码   必须   创建   nbsp   定义   员工   img   观察者   

原文地址:https://www.cnblogs.com/candy-xia/p/9047879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!