主页 > logo设计 > 观察者模式设计报告免费(观察者模式的实现)

观察者模式设计报告免费(观察者模式的实现)

2022-12-10 05:51来源:m.sf1369.com作者:宇宇

1. 观察者模式的实现

可以在指令界面输入指令

2. 设计模式 观察者

代理模式是对主导对象的访问。

观察者模式是一对多的主导式模式,当一个主导对象发生改变,则其他对象都会收到通知而发生改变。

3. 观察者设计模式的应用

苹果‬手机‬通知中心可以将所有的提示信息进行集中展示的界面,你可以决定哪些app和提醒可以出现在通知中心,而哪些app则完全没有必要进行提示。

通知中心实际上是iOS程序内部之间的一种消息广播机制,主要为了解决应用程序内部不同对象之间解耦而设计。它是基于观察者模式设计的,不能跨应用程序进程进行通信,当通知中心接收到消息之后会根据内部的消息转发表,将消息发送给订阅者。

4. 观察者模式实例

vue computed 不是观察者模式。

因为vue里面的computed是计算属性,它是一个依赖于其他属性的,当依赖的属性发生变化的时候就会触发我们计算属性的逻辑,而且是基于它们依赖的属性进行缓存的,也就是说只有当依赖的属性发生变化的时候才会从新求值,watch才是vue的观察者模式的。

5. 设计模式中的观察者模式

实际上getchar函数是从缓冲区读取数据的,而不是从你的屏幕上读取数据.

键盘负责往缓冲区写入数据,而getchar函数负责读取数据.

getchar函数不会关心你实际输入的是什么,它只负责从缓冲区读取数据,而且每次读取一个字符.

你点击键盘的时候,实际上是往缓冲区输入:

你按下a,则缓冲区中保存了一个字符a

你按下b,则缓冲区中又保存了一个字符b

你按下c,则缓冲区中又保存了一个字符c

你按下1,则缓冲区中又保存了一个字符1

你按下backspace删除键,则缓冲区中删除了一个字符(最后保存的那个1)

除非你按下Enter,不然你其实就是在往缓冲区中塞数据.

关键点来了:当你按下Enter的时候,发生了两个动作.首先是往缓冲区保存了一个'\n'字符,然后才执行刷新

刷新其实就是告诉getchar(或者任何需要读取这个缓冲区的函数,比如scanf),现在你可以开始读取我保存的数据了.

于是现在缓冲区中保存的数据是[a,b,c,'\n'] ,注意缓冲区的最后会有一个换行符(因为你敲了Enter键)

. 好,现在开始读取数据:

第一次调用getchar,则读取缓冲区中的第一个数据a

第二次调用getchar,将会读取缓冲区中的第二个数据b

第三次调用getchar,将会读取缓冲区中的第三个数据c

第四次调用getchar,将会读取缓冲区中的最后一个数据'\n',也就是换行符.

如果你while循环来调用n次getchar(),就会按顺序读取缓冲区n次,就好像是按顺序读取数组一样.

如果getchar()发现缓冲区中没数据了,也就是说缓冲区的数据已经被读完了,没数据可读了.那么getchar函数会等你再次输入数据并且按下Enter执行刷新.

如果缓冲区有8个字符,你却只调用了5次getchar,那么缓冲区会剩下3个字符.因为你只读了5个字符.

可以实际编程上机尝试,懂得了原理,就会比较容易理解了.

为什么要使用缓冲区呢?

基本的设计考虑是节约时间,提高资源利用率.并且还附带一个额外功能:可以修改缓冲区的数据,修正错误的输入.

另外,我尝试从两个不同角度去解释一下缓冲区和getchar的机制,可能会有助于新手理解:

如果强行从"面向对象"上去理解,这个缓冲区的设计叫做"分离关注点":

键盘负责写入数据,允许修改(也就是回退删除),关注点是"写"

getchar只负责按字符读取数据,关注点是"读"

如果强行用"设计模式"理解这个缓冲区设计,那就是一个简单的"观察者模式":

键盘生成缓冲区数据,负责写入

数据,并在数据发生变化的时候通知订阅者(也就是执行刷新操作)

getchar作为一个订阅了"缓冲区数据"的函数,当收到"刷新"指令的时候,就开始按顺序读取

数据,每次只会读取缓冲区中的一个字符.

实际上,C语言中的getchar()函数相当于缓冲区的一个迭代器,专门用来读取缓冲区中的数据的.

6. 观察者模式概念

.

首先,以OP权限进入游戏。

2.

然后按T打开指令输入框。

3.

接着输入/gamemode-3;(3位旁观者模式)。

4.

然后按回车发送指令;指令发送后,游戏模式就变成旁观者模式了。

7. 观察者设计模式结构图

平面图是建筑物各层的水平剖切图,假想通过一栋房屋的门窗洞口水平剖开(移走房屋的上半部分),将切面以下部分向下投影,所得的水平剖面图,就称平面图。

剖面图又称剖切图,是通过对有关的图形按照一定剖切方向所展示的内部构造图例,剖面图是假想用一个剖切平面将物体剖开,移去介于观察者和剖切平面之间的部分,对于剩余的部分向投影面所做的正投影图。

相关推荐

∧LPH∧是药品的什么标志

logo设计 2023-12-17

标志为大写g的游戏公司

logo设计 2023-12-16

中国银行徽标的意义是什么

logo设计 2023-12-16