位置: 编程技术 - 正文

深入理解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):设计模式之组合模式详解(深入理解新发展理念)

  • 土地增值税常见问题及解答
  • 行权税费
  • 退回企业所得税的账务处理
  • 税收滞纳金还会计算滞纳金吗
  • 农产品收购发票使用范围
  • 咨询服务业涉及税费
  • 返岗补贴怎么办理
  • 固定资产开专票怎么记凭证
  • 哪些行业增值税率1%
  • 一人有限公司年度审计报告
  • 其他应收款对方科目是啥
  • 以前年度损益调整属于哪类科目
  • 国税申报需要带什么资料
  • 合伙人未出资能成为合伙人吗
  • 企业的其他业务收入包括
  • 买车的发票可以抵扣吗?
  • 资产收购的特殊性税务处理方法
  • 设备安装公司如何经营
  • 电费预提费用
  • 公司帐户能直接转账吗
  • 股权转让协议解除返还股权优先权
  • 股权转让有哪些股
  • 机器学习-10 聚类算法
  • uniapp 信息推送
  • 增值税留抵税额可以结转下一年吗
  • php use关键字
  • 工作服计入什么明细科目
  • 固定资产增值税税率是多少
  • 进项税转出的会计分录
  • mongodb常用语句
  • pandas columns排序
  • 非营利组织免征企业所得税的通知
  • 公司收到个人汇款怎么开发票
  • 企业电子发票申请流程2023版
  • 百旺金赋怎么开红字发票
  • 招待费专票不可以抵扣
  • 劳务分包劳务费付款比例
  • 增值税申报表是含税还是不含税
  • 补充登记法是全部都用蓝字吗
  • 管理费用应该如何分摊 dcf
  • 个税手续费怎么计算
  • 收到政府的资本公积可以投入子公司吗
  • 其他综合收益为什么不影响利润
  • 非房产企业出售土地,能否计算抵减地价款
  • 加权净资产收益率越高越好吗
  • 年末未分配利润总额计算公式
  • 无建账能力的纳税人是什么意思
  • 分支机构需要单独设立账簿吗
  • 怎么统计每日产量
  • sp_executesql 使用复杂的Unicode 表达式错误的解决方法
  • linux rpm包怎么安装
  • sqlserver 查看表
  • window10右击
  • ubuntu1
  • vmware workstation15安装ubuntu
  • win10预览版和正式版
  • linux系统基于
  • win7旗舰版显示器亮度调节
  • windows10体验指数如何查看
  • win10系统运行速度慢
  • linux awk nr
  • kernel-headers-2.2.1-4
  • unity获取组件的方法
  • opengl es api
  • awk中RS、ORS、FS、OFS的区别和联系小结
  • 安卓图片缓存太占空间
  • Android中SQLite数据库的使用
  • python erf
  • javascript高级程序设计电子书
  • nodejs处理excel
  • js赋值input
  • 快速学会java
  • js 字符串转字节
  • android 网络编程
  • 增值税发票综合服务平台登录不了
  • 四川增值税发票查验平台
  • 实名办税信息采集的身份证件
  • 报纸的增值税税目是什么
  • 工程合同可以违背国家规范吗
  • 南通五险一金最低比例
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设