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

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

// 投票结果状态对象
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);

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

转载于:https://www.cnblogs.com/camille666/p/design_pattern_behavior_state.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值