Redux 与发布订阅模式
Redux 只有一个主题,就是 Store,发生改变后,调用 subscribe 里面的 listener(观察者),Redux 属于 pull model,因为调用 listener 时并不会传递信息,这样 Redux 就不需要知道观察者需要什么信息
Redux 与命令模式
相同点:将命令封装为一个对象
差异点:
- redux 的命令对象没有接受者,而是通过中间件和 reducer 处理命令
- redux 的命令对象没有太大的可扩展性,不支持撤销或重做 好处:但是具有命令模式的灵活性,提交请求的对象不需要知道处理命令的对象,可以在任何地方提交请求
Redux 与 pipe filter 模式
例如 koa 的中间件,axios 的拦截器,都是这种模式,本质上就是组合函数,而组合函数的本质是高阶函数,利用了 javascript 中函数既可以是参数又可以是返回值的特性