博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈“观察者模式”那点小事儿
阅读量:4991 次
发布时间:2019-06-12

本文共 1044 字,大约阅读时间需要 3 分钟。

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

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

官方一点来说:

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

也许了解完概念,还是不知道观察者模式到底是一个什么东西。

下面来举个栗子:

首先,我们先创建一个公司:

公司肯定会有很多员工,所以用一个数组去存放员工们;

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

公司每个月还得必做的一件事就是给员工们发工资啦,所以公司还需要一个发工资的方法,方法用一个循环将工资发到每个员工手上。

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

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

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

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

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

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

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

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

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

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

若是仍不理解,推荐一位大神的博客仅供参考:

 

转载于:https://www.cnblogs.com/candy-xia/p/9047879.html

你可能感兴趣的文章
text3
查看>>
自己写的连击文字特效
查看>>
【Android】eclipse打不开的解决办法和“Jar mismatch! Fix your dependencies”的解决
查看>>
Mysql查询某字段值重复的数据
查看>>
Java 自学笔记-基本语法3setOut()方法设置新的输出流
查看>>
cocos2d-JS 模块 anysdk 概述
查看>>
docker镜像mac下保存路径
查看>>
docker使用 命令
查看>>
关于C#操作INI文件的总结
查看>>
ZeptoLab Code Rush 2015 B. Om Nom and Dark Park
查看>>
ctci1.2
查看>>
[译]RabbitMQ教程C#版 - 路由
查看>>
升级项目到.NET Core 2.0,在Linux上安装Docker,并成功部署
查看>>
Android:onNewIntent()触发机制及注意事项
查看>>
珠宝公司之感想
查看>>
项目问题
查看>>
scss侦听并压缩
查看>>
我有接口文档, 你有酒吗?
查看>>
iOS - Push 通知推送
查看>>
[FJOI2007]轮状病毒
查看>>