设计模式之行为型状态模式

Posted 专注前端开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之行为型状态模式相关的知识,希望对你有一定的参考价值。

当一个对象内部状态发生改变时,会导致其行为的改变,这看起来像是改变了对像。
平时写代码的时候经常会遇到要写很多条件判断语句的情况,那么怎么减少代码中的条件判断语句呢?对于这类分支条件内部独立结果的管理,可以使用状态模式,每一种条件作为对象的一种状态,面对不同的判断结果,其实就是选择对象内的一种状态。

// 投票结果状态对象
var ResultState = function() {
  // 判断结果保存在内部状态中
  var States = {
    // 每种状态作为一种独立方法保存
    state0: function() {
      console.log(‘这是第一种情况‘):
    },
    state1: function() {
      console.log(‘这是第二种情况‘):
    },
    state2: function() {
      console.log(‘这是第三种情况‘):
    },
    state3: function() {
      console.log(‘这是第四种情况‘):
    }
  }
  // 获取某种状态并执行对应方法
  function show(result) {
    States[‘state‘ + result] && States[‘state‘ + result]();
  }
  return {
    // 返回调用状态方法接口
    show: show
  }
}();


//调用 ResultState.show(3);

状态模式主要目的是将条件判断的不同结果转化为状态对象的内部状态,这个内部状态一般作为状态对象的私有变量,然后提供一个能够调用状态对象内部状态的接口方法对象即可。

以上是关于设计模式之行为型状态模式的主要内容,如果未能解决你的问题,请参考以下文章

行为型设计模式之备忘录模式

行为型设计模式之备忘录模式

行为型模式之状态模式

行为型模式之状态模式

JAVA SCRIPT设计模式--行为型--设计模式之State状态者模式(20)

JAVA SCRIPT设计模式--行为型--设计模式之State状态者模式(20)