发布订阅模式 1. 个人仅以最简单的发布订阅模式呈现该模式的思想,主要注重该思想的理解,同于多处理异步,切片事件等操作 发布订阅的理解(个人) 1. 主要原理是依次去获取调度中心的状态,整个数据是在调度中心获取的, 发布者和观察者之间不存在直接的联系 2. 观察者模式中却又包含者发布订阅模式, 有发 ...
分类:
其他好文 时间:
2019-09-03 16:21:01
阅读次数:
96
前言 状态机在计算机领域中出现比较多,最近在做DM对话管理的时候,就有有限状态图的概念,又呼应了之前在钛动学到的一些状态机概念,当时状态机在整个公司纵横,但我不知道能灵活运用的人有多少。 FMS 有限状态机 先谈,有限状态机(FMS),FSM 解决一个输入序列,经过 FSM,最终停留在什么状态这样一 ...
分类:
其他好文 时间:
2019-09-02 09:34:11
阅读次数:
191
使用C++11中的std::bind和std::function以及模板可以很好的实现观察者模式,现在把自己的一些实现的想法记录在此. 编译环境:VS2017 实现的想法:将各个类之间进行解耦,使用C++11的特性实现观察者,C++11中的std::function中可以传函数和lambda仿函数, ...
分类:
编程语言 时间:
2019-08-31 23:16:13
阅读次数:
110
定义 对象之间定义一对多的依赖,当 这个对象状态发生变化,它所依赖的对象都能得到变化后的状态值。(简单的来说,就类似消息系统的发布订阅模式。其中消息系统中的 就是 ,消息系统中的 就是被观察者。当生产者的状态发生变化,那么订阅该消息的消费者就将全部接收到变化的信息) 类图 说明 由UML可以看出,该 ...
分类:
其他好文 时间:
2019-08-26 14:55:56
阅读次数:
63
设计模式的六大原则: 1、单一职责原则:对于一个类,应该只有一个引起它变化的原因; 2、里氏替换原则:子类必须能够替换掉他们的父类型; 3、开放封闭原则:程序的对象应该可以扩展,但不应该可以修改; 4、依赖倒转原则:高层模块不应依赖于底层模块,两者都应依赖于抽象;抽象不依赖于集体细节,而细节应该依赖 ...
分类:
其他好文 时间:
2019-08-24 22:46:55
阅读次数:
90
[toc] 设计原则 封装变化:将可能发生变化的部分独立出来 多用组合,少用继承 针对接口编程,而不针对实现编程 松耦合设计 开放 关闭原则:对扩展开发,对修改关闭 设计模式 策略模式 定义一组可以互相替代的算法组,利用多态将具体实现隐藏 观察者模式 定义 观察者模式定义了对象之间的一对多依赖,当对 ...
分类:
其他好文 时间:
2019-08-24 16:50:58
阅读次数:
104
之前查询资料时发现使用std::bind可以很好的实现设计模式之中的观察者模式. 但所调用bind绑定的函数比较难实现继承.使用多级指针实现继承. 示例代码如下: 编译环境:VS2017 如果删除第29和31行,显示Base Class,加上的话,显示Derive Class。这是因为在调用的时候, ...
分类:
编程语言 时间:
2019-08-24 00:43:28
阅读次数:
140
源代码当中会有一个观察者模式,主要负责观察你的数据是否发生变化 他是通过Object.defineProperty来实现判断。当你的数据发生变化的时候,他会执行到处理器当中 的set,set发生变化之后,他会通知其相对应的订阅者,而这个订阅者是你数据下面的DOM操作, 具体就是执行这个DOM下面的u ...
分类:
其他好文 时间:
2019-08-22 22:11:28
阅读次数:
96
第22题:介绍下重绘和回流(Repaint&Reflow),以及如何进行优化? 答:关于重绘和回流 第23题:介绍下观察者模式和订阅-发布模式的区别,各自适用于什么场景? 答:观察者模式和发布订阅模式 第24题:聊聊Redux和Vuex的设计思想? 答: 把组件之间需要共享的状态抽取出来,遵循特定的 ...
分类:
其他好文 时间:
2019-08-22 13:25:45
阅读次数:
104
一、角色 + 目标(Subject):被观察对象的抽象接口 + 具体目标(ConcreteSubject):被观察对象的具体实现 + 观察者(Observer):观察者对象的抽象接口 + 具体观察者(ConcreteObserver):观察者对象的具体实现 二、适用场景 + 一个抽象模型有两个方面, ...
分类:
其他好文 时间:
2019-08-21 11:15:26
阅读次数:
69