JS的策略模式使用详解

这次给大家带来JS的策略模式使用详解,使用JS策略模式的注意事项有哪些,下面就是实战案例,一起来看一下。

策略模式的概念引用:

在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。

如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。

这两种实现方法我们都可以称之为硬编码,如果需要增加一种新的查找算法,需要修改封装算法类的源代码;更换查找算法,也需要修改客户端调用代码。

在这个算法类中封装了大量查找算法,该类代码将较复杂,维护较为困难。如果我们将这些策略包含在客户端,这种做法更不可取,将导致客户端程序庞大而且难以维护,如果存在大量可供选择的算法时问题将变得更加严重.

举例说明:

一、出行旅游:我们可以有几个策略可以考虑:可以骑自行车,汽车,做火车,飞机。每个策略都可以得到相同的结果,但是它们使用了不同的资源。

选择策略的依据是费用,时间,使用工具还有每种方式的方便程度 。

二、在一个购物商城,在五一做了一个活动,所以图书类商品根据购买的金额做出以下折扣策略

1、购买满199元,打9折
2、购买满399元,打8折
3、购买满599元以上,打7折;

function BookStrategy() { this.calcPrice = function( price ) { console.log("未打折 = " + price); }}function BookCalc9Strategy() { this.calcPrice = function( price ) { console.log("原价是:"+ price +";打9折后:" + (price * 0.9)); }}function BookCalc8Strategy() { this.calcPrice = function( price ) { console.log("原价是:"+ price +";打8折后:" + (price * 0.8)); }}function BookCalc7Strategy() { this.calcPrice = function( price ) { console.log("原价是:"+ price +";打7折后:" + (price * 0.7)); }}function PriceCalc( _strategy ) { this.strategy = _strategy; this.getPrice = function( price ) { return this.strategy.calcPrice( price ); }}function Client() { var price = 100; var priceCalc = null; if ( 199 <= price && price < 399 ) { priceCalc = new PriceCalc(new BookCalc9Strategy()); } else if ( 399 <= price && price < 599 ) { priceCalc = new PriceCalc(new BookCalc8Strategy()); } else if ( 599 <= price ) { priceCalc = new PriceCalc(new BookCalc7Strategy()); } else { priceCalc = new PriceCalc(new BookStrategy()); } priceCalc.getPrice(price);}Client();

登录后复制

运行结果:

JS的策略模式使用详解

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

datepicker怎么使用

mixin的高阶组件使用详解

ejsExcel模板在Vue.js中的使用

以上就是JS的策略模式使用详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2779686.html

(0)
上一篇 2025年3月8日 15:50:20
下一篇 2025年3月1日 05:32:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS自动计算酒店住宿费用

    这篇文章主要介绍了javascript实现获取一个日期段内每天不同的价格(计算入住总价格)的相关资料,需要的朋友可以参考下   代码例子 最近在做酒店的小程序项目开发,遇到一个这样的问题。 酒店的房间价格是浮动的,每天每时或某个特殊的日期价…

    2025年3月8日
    200
  • Map和ForEach的使用区别

    这次给大家带来Map和ForEach的使用区别,使用Map和ForEach的注意事项有哪些,下面就是实战案例,一起来看一下。 如果你已经有注意事项的经验,你可能已经知道这两个看似相同的方法:Array.prototype.map()和Arr…

    2025年3月8日
    200
  • axios封装fetch调用详解

    这次给大家带来axios封装fetch调用详解,axios封装fetch的注意事项有哪些,下面就是实战案例,一起来看一下。 基础axios用法请看axios官网 //依赖于axios对私有ajax进行修改import Qs from ‘qs…

    编程技术 2025年3月8日
    200
  • JS的Object内部方法图

    这次给大家带来JS的Object内部方法图,Object内部方法图注意事项有哪些,下面就是实战案例,一起来看一下。 对于JavaScript对象的操作基本上都会调用底层的对象内部方法,我们可以看出在ES6标准中定了14种内部方法. 双 [[…

    2025年3月8日
    200
  • 在Vue.JS中怎样使用echarts

    这次给大家带来在Vue.JS中怎样使用echarts,在Vue.JS中使用echarts的注意事项有哪些,下面就是实战案例,一起来看一下。 上篇文章给大家介绍了 在 webpack 中使用 ECharts的实例详解 ,可以点击查看。 1. …

    编程技术 2025年3月8日
    200
  • 在webpack中使用ECharts详解

    这次给大家带来在webpack中使用echarts详解,在webpack中使用echarts的注意事项有哪些,下面就是实战案例,一起来看一下。 Webpack 是目前比较流行的模块打包工具,你可以在使用 webpack 的项目中轻松的引入和…

    编程技术 2025年3月8日
    200
  • async与await的用法详解

    这次给大家带来async与await的用法详解,使用async与await的注意事项有哪些,下面就是实战案例,一起来看一下。 Koa是一款非常著名的Node服务端框架,有1.x版本和2.x版本。前者使用了generator来进行异步操作,后…

    编程技术 2025年3月8日
    200
  • js的作用域与预解析使用详解

    这次给大家带来js的作用域与预解析使用详解,js作用域与预解析使用的注意事项有哪些,下面就是实战案例,一起来看一下。 虽然,ES6在我们工作中应用得越来越广泛,但是还是很多项目保留着ES5的写法,所以,今天,带着大家重新巩固下ES5下的作用…

    编程技术 2025年3月8日
    200
  • JS仿今日头条手机端主页界面

    这次给大家带来JS仿今日头条手机端主页界面,JS仿今日头条手机端主页界面的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 vue也弄了一段时间了, 前段时间一直想用vue写个移动端,加之年底也不是很忙,于是前几天便着手开始弄了,到今…

    2025年3月8日 编程技术
    200
  • js的闭包使用详解

    这次给大家带来js的闭包使用详解,js闭包使用的注意事项有哪些,下面就是实战案例,一起来看一下。 闭包 按中文的意思就是关上一个包的意思。如果我们把函数的作用域当做是一个包的话,那这个词很形象体现了它的作用 。函数的正常的执行流程是当函数中…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论