状态模式(策略模式)

  • 允许一个对象在其内部状态改变的时候改变它的行为。
  • 其实就是创建一个对象或者Map,key值记录状态,value记录实现。当状态改变的时候,执行value
class State {
  constructor() {
    this.currentState = []
    this.states = {
      a() { console.log('执行a') },
      b() { console.log('执行b') },
      c() { console.log('执行c') }
    }
  }
  change(arr) {
    this.currentState = arr
    return this
  }
  do() {
    this.currentState.forEach(item => {
      this.states[item]()
    })
    return this
  }
}
new State()
  .change(['a'])
  .do()

如果记录状态时,key值只能是字符串有局限,可以使用Map

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容