位置: 编程技术 - 正文

深入理解JavaScript系列(33):设计模式之策略模式详解(深入理解新发展理念)

编辑:rootadmin

推荐整理分享深入理解JavaScript系列(33):设计模式之策略模式详解(深入理解新发展理念),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入理解javascript特性.pdf,深入理解javascript,深入理解新发展理念,推进供给侧结构性改革,深入理解计算机系统,深入理解javascript,深入理解javascript特性,深入理解javascript特性.pdf,深入理解javascript特性.pdf,内容如对您有帮助,希望把文章链接给更多的朋友!

介绍

策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。

正文

深入理解JavaScript系列(33):设计模式之策略模式详解(深入理解新发展理念)

在理解策略模式之前,我们先来一个例子,一般情况下,如果我们要做数据合法性验证,很多时候都是按照swith语句来判断,但是这就带来几个问题,首先如果增加需求的话,我们还要再次修改这段代码以增加逻辑,而且在进行单元测试的时候也会越来越复杂,代码如下:那如何来避免上述代码中的问题呢,根据策略模式,我们可以将相同的工作代码单独封装成不同的类,然后通过统一的策略处理类来处理,OK,我们先来定义策略处理类,代码如下:然后剩下的工作,就是定义types里存放的各种验证类了,我们这里只举几个例子:使用的时候,我们首先要定义需要验证的数据集合,然后还需要定义每种数据需要验证的规则类型,代码如下:最后,获取验证结果的代码就简单了:总结

策略模式定义了一系列算法,从概念上来说,所有的这些算法都是做相同的事情,只是实现不同,他可以以相同的方式调用所有的方法,减少了各种算法类与使用算法类之间的耦合。

从另外一个层面上来说,单独定义算法类,也方便了单元测试,因为可以通过自己的算法进行单独测试。

实践中,不仅可以封装算法,也可以用来封装几乎任何类型的规则,是要在分析过程中需要在不同时间应用不同的业务规则,就可以考虑是要策略模式来处理各种变化。

深入理解JavaScript系列():设计模式之组合模式详解 介绍组合模式(Composite)将对象组合成树形结构以表示部分-整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。常见的场景

深入理解JavaScript系列():设计模式之模板方法详解 介绍模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该

深入理解JavaScript系列():设计模式之适配器模式详解 介绍适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不

标签: 深入理解新发展理念

本文链接地址:https://www.jiuchutong.com/biancheng/382862.html 转载请保留说明!

上一篇:深入理解JavaScript系列(30):设计模式之外观模式详解(深入理解javascript特性)

下一篇:深入理解JavaScript系列(40):设计模式之组合模式详解(深入理解新发展理念)

  • 完税价格是含税价
  • 税务师考哪5门
  • 利息收入纳税义务时点
  • 普惠性幼儿园是非盈利幼儿园吗
  • 小规模纳税人做账要做增值税吗
  • 资产总计是期初余额吗
  • 集体企业弊端
  • 专票丢失登报后怎么处理
  • 计划成本法会计分录例题
  • 土地违约金怎么写合同
  • 税务局多扣的税可以退吗
  • 生产企业电梯维修方案
  • 企业所得税营业税金及附加
  • 企业所得税逾期未申报怎么补申报
  • 小规模纳税人实行简易征收办法
  • 电子税务局进项票汇总
  • 外币投入资本不产生汇兑损益
  • 土地契税税率怎么计算
  • 会计师事务所执业许可和监督管理办法
  • 费用报销单的日期
  • 财务费用算营业利润吗
  • 预提费用和应付利息一样吗
  • 申请银行汇票手续费记账凭证
  • 企业购车按揭产生的费用
  • 兼营行为的含义
  • 怎么更改mac
  • linux 部署
  • windows11永久解决蓝屏
  • 充值会员卡销售话语
  • macbook 运行windows
  • 逾期增值税扣税凭证
  • 支付赊购材料款怎么入账
  • vue three.js
  • 增值税专用发票怎么开
  • 长期股权投资成本法收回投资
  • 职工福利费会计科目怎么写
  • 进项税额资产还是负债
  • 没有进项开销项需要交几个点
  • 如何解决Vue3没有代码提示问题?
  • php jquery
  • mysql识别中文
  • 建筑业的印花税是按含税还是不含税?
  • 工会经费怎么上缴
  • 好用的微信小程序邮箱有哪些
  • 尾款忘记支付,交易关闭怎么办
  • 出口退税转内销的损失
  • 工资是负数怎么办
  • 简易征收销售额是什么意思
  • sql server 2008 r2教程
  • 计算业务招待费扣除限额的基础包括营业外收入
  • 公司雇佣退休人员工资怎么发
  • 小微企业开专票需要缴纳多少税
  • 年资产总额增长怎么算
  • 营业成本指的什么
  • 公司支付工伤赔偿,是先签字还是先打钱
  • 固定资产当月入账当月计提吗
  • 堤围防护费是什么
  • 建筑公司收到的工程服务发票怎么做账
  • 销售回款率怎么计算,麻烦知道的告诉我,11
  • 企业的案例分析报告
  • 库存商品暂估入库是什么意思
  • 应付账款暂估可以法人付款吗
  • 城市维护建设税的计税依据
  • 微软官方重做系统
  • ubuntu14.04启动不了
  • mac键盘图标与对应不匹配
  • linux config
  • win10安装字体的操作步骤
  • [置顶]电影名字《收件人不详》
  • cmd常用命令详解
  • kindeditor获取内容
  • 详细解读了
  • unity导出ios项目到iphone
  • jquery当前时间
  • 广东省税务局官网 国家税务总局
  • 天津地税局网上营业厅
  • 国税局登录密码修改
  • 个体工商户地税怎么申报
  • 广东电子税务局财务报表在哪里查询
  • 个体户国税地税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设