zoukankan      html  css  js  c++  java
  • 设计模式之行为型状态模式

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

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

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

  • 相关阅读:
    Django使用xadmin集成富文本编辑器Ueditor(方法二)
    Django-xadmin后台配置富文本编辑器(方法一)
    求解函数不等式[给定具体函数]
    区间断想
    函数方程和函数不等式
    对函数的再理解
    多题一解
    破解函数性质中的表达难点
    [数学模型]应用举例
    函数的迭代
  • 原文地址:https://www.cnblogs.com/camille666/p/design_pattern_behavior_state.html
Copyright © 2011-2022 走看看