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);
      }
    }();

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

  • 相关阅读:
    倍增
    「BZOJ 2152」聪聪可可
    「POJ 1741」Tree
    点分治
    高斯消元
    网络流24题之餐巾计划问题
    网络流24题之骑士共存问题
    网络流24题之方格取数问题
    网络流24题之负载平衡问题
    网络流24题之分配问题
  • 原文地址:https://www.cnblogs.com/camille666/p/design_pattern_behavior_strategy.html
Copyright © 2011-2022 走看看