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

    将定义的一组算法封装起来,使其相互之间可以替换。封装的算法具有一定独立性,不会随客户端变化而变化。
    策略模式不需要管理状态、状态间没有依赖关系、策略之间可以相互替换、在策略对象内部保存的是相互独立的一些算法。

    // 价格策略对象
    var PriceStrategy = function() {
      // 内部算法对象
      var strategy = {
        // 100返30
        return30: function(price) {},
        // 100返50
        return50: function(price) {},
        // 9折
        percent90: function(price) {},
        // 8折
        percent80: function(price) {},
        // 5折
        percent50: function(price) {}
      }
      // 策略算法调用接口
      return function(algorithm, price) {
        return strategy[algorithm] && strategy[algorithm](price);
      }
    }();

    策略模式主要特色是创建一系列策略算法,每组算法处理业务都是相同的,只是处理的过程或者处理的结果不一样,所以它们是可以相互替换的,这样就解决了算法与使用者之间的耦合。

  • 相关阅读:
    vue 添加对象的新属性的方法
    vue 简单的c3属性写法
    大数据分析技术生态圈一览
    网络
    Axis2 WebService客户端Axis2调用
    前端资源
    不错的数据库
    dubbo
    大数据相关
    This is very likely to create a memory leak 异常
  • 原文地址:https://www.cnblogs.com/camille666/p/design_pattern_behavior_strategy.html
Copyright © 2011-2022 走看看