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


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

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

    官方一点来说:

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

    了解完概念,是不是还是对“观察者模式”理解的迷迷糊糊的,下面举个例子来加深一下对“观察者模式”的理解吧...

    例:

    首先,我们先创建一个名为“公司”的方法;

    公司里面一般都会有很多员工,所以我们用一个数组去存放“员工们”;

    员工们怎么来的呢?那肯定公司得去做招聘员工这件事,所以要有“招聘”的方法;

    公司每个月必做的一件事就是给员工们发工资啦,所以公司还需要一个“发工资”的方法,方法用一个循环将工资发到每个员工手上,这样确保每个员工都能拿到工资。

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

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

    员工必要的属性就是姓名,所以必须给员工传递一个“姓名”的参数;

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

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

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

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

    总结

    我们再从头来好好缕缕文章开头说的“观察者模式”的概念:

    所谓:一对多的形式在这个栗子中,就是一个公司对很多员工们的形式;当一个物体方生变化的时候,会通知所有物体去接受这个事件,在这个栗子中的体现是公司给员工们发工资,只是公司一方发生变化,而所有的员工都收到了工资。

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

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

  • 相关阅读:
    冒泡排序
    题6 字典转数组 修改 大美女
    题5数组 排序 修改 字典以字符串输出
    题4数组 删除 排序
    数组字典结合删除排序 描述器
    盘点世界上最怪异的编程语言: 这6种编程语言的出现,只是为了好玩?
    Linux“四”种软件包都安排上了!详细安装过程曝光
    又一名程序员被判刑了!百度92年程序员改当“审核员”,编写脚本违规“开绿灯”
    C++的三种继承方式:public,protected,private
    Linux下查询进程占用内存的5种方式!还有谁不会?
  • 原文地址:https://www.cnblogs.com/candy-xia/p/9047879.html
Copyright © 2020-2023  润新知