美文网首页
js设计模式之策略模式学习

js设计模式之策略模式学习

作者: yunshengz | 来源:发表于2020-06-29 15:28 被阅读0次

本文主要由网上整理而来

概念

策略模式是定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换。
一个类的行为和其算法可以在运行的时候更改。

标准范式

// 定义一个策略
let priceceStrategy = function(){
  // 内部算法对象 
  // 策略类
  let strategy = {
    return30(price){
      return price + parseInt(price / 100) * 30
    },
    return50(price){
      return price + parseInt(price / 100) * 50
    },
    price80(price){
      return price  * 80 / 100
    },
    price90(price){
      return price  * 90 / 100
    }
  }
  // 调用策略方法接口
  // 环境类
  return (type, price) => {
    return strategy[type] && strategy[type](price)
  }
}();

/* 
 * 调用 
 * priceceStrategy('return30', 100)
 *
*/

特点

由上面的标准范式中可以看到有两个类注释,分别策略类和环境类;
策略类保存所有的策略名对应的算法;
环境类用来调用具体的策略类中的策略算法;

使用场景

在有多种相似算法的情况下,使用if...else所带来的复杂和年便已维护的问题。

旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。

商场促销方式,打折、满减等。

引用来源参考

js 设计模式——策略模式

js策略模式之浅谈

简说设计模式——策略模式

相关文章

  • js设计模式之策略模式学习

    本文主要由网上整理而来 概念 策略模式是定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换。一个类的行为...

  • PHP设计模式之策略模式

    PHP设计模式之策略模式

  • PHP设计模式之策略模式

    PHP设计模式之策略模式

  • 简说设计模式之策略模式

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是策略模式 策略(Strategy)模式...

  • JS设计模式之策略模式

    策略模式(Strategy):将定义的一组算法封装起来,使其相互之间可以替换。封装的算法具有一定独立性,不会随客户...

  • JS设计模式之策略模式

    策略模式 定义: 根据不同参数可以命中不同的策略意图: 定义一系列的算法,把它们一个个封装起来, 并且使它们可相...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 策略模式

    参考资料:漫话:如何给女朋友解释什么是策略模式? 设计模式之策略模式(实例+Demo) Java设计模式(8)——...

  • 学习Head First设计模式Day1

    Java设计模式之设计模式 策略模式:策略模式定义了算法簇,分别封装起来,让他们之间可以互相替换,此设计模式让算法...

  • 策略模式 2018-11-04

    设计模式之策略模式 官方说明设计模式的3个角色: 环境角色:context , 持有一个策略的引用 抽象策略角色,...

网友评论

      本文标题:js设计模式之策略模式学习

      本文链接:https://www.haomeiwen.com/subject/qhbofktx.html