状态模式
目标
优化if...else
应用场景
promise、有限状态机
代码示例
(当对象状态变化时,调用同一个接口,执行的具体逻辑不同,它强调的是由谁到谁)
备忘录模式
目标
记录状态变化,必要时回退
应用场景
列表分页
代码示例
假设需要展示一个分页表格,并且与后台建立一个webSocket通信,约定仅在更新时刷新表格。其他情况下前端只请求一次即可
定义PageMemoto类,用于记录每一页的数据
定义PageMemotoList类,作为备忘列表,存储所有的页面数据状态
实现Table组件
对于当前点击的页数,首先从备忘列表中查找,找不到再请求接口
中介者模式
目标
分离多个交互对象的联系
应用场景
购物车
代码示例
假设现在有两组下拉框SelectA和SelectB,其中SelectA的第二个选项和SelectB的第二个选项互斥
(避免在A中直接修改B)