位置: 编程技术 - 正文

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

发布时间:2024-02-27

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

  • 个税汇算清缴系统找不到扣缴义务人
  • 自然人收缴税务客户端
  • 一般纳税人条件要求
  • 收到投资款需要缴纳增值税吗
  • 房产税应由哪方交纳
  • 机器配件作价卖掉,如何做进项税转出
  • 增值税纳税义务发生时间
  • 出售多余材料会计科目
  • 个人独资企业对公账户的钱可以转到私人账户吗
  • 代扣代缴公积金有返还吗
  • 折旧完的固定资产出售
  • 出口退税进项税额转出是什么意思
  • 开票软件服务费不交会怎么样
  • 非生产用设备及器具
  • 一般纳税人进项发票认证操作流程
  • 服务费可以不退吗
  • 开个人普发票需要什么资料?
  • 通用申报表个人所得税应税项怎么填
  • 销售费用广告费存在哪些问题
  • 赠送给客户的商品怎么做账
  • 代扣代缴增值税附加税减免政策
  • 教育附加税怎么退
  • 管理费用保险费汇算清缴
  • 出口退税和增值税抵扣一样吗
  • 生产型企业进口退税政策
  • 现在windows11
  • 如何用mac制作ppt
  • 账户验证因姓名验证错误导致失败
  • 股权和债权有无区别
  • 固定资产抵债交不交增值税
  • 销售费用税前扣除吗
  • pa等比例缩放
  • php抽奖程序源码
  • php验证码识别
  • 固定资产的预计使用寿命和净残值发生变更
  • 核销固定资产时会计处理
  • php分页技术
  • frameworks
  • 长期借款账务处理会计分录怎么写
  • vue动态路由是什么
  • php ajax 实现
  • 小企业会计准则外币业务
  • 将织梦dedecms转换到wordpress
  • 城建税的减免规定有哪些
  • 在建工程的土地可以查封吗
  • 加工企业怎么做账务处理
  • 实收资本什么时候交齐
  • 我国的税种及税率
  • 发票税控系统
  • 预期收益率怎么用市场预期收益率算
  • 长期待摊费用的二级科目有哪些
  • 划拨土地使用权管理暂行办法
  • 没有发票也可以报销
  • 百旺金赋税盘怎么清卡
  • WorkFlowTray.exe是什么进程
  • windows10x预览版
  • win7系统存储在哪
  • linux安装docker-compose
  • cocos2djs
  • [置顶] [寒江孤叶丶的Cocos2d-x之旅_29]在Cocos2d-x中集成protobuf (Protocol Buffers)
  • nginx react
  • python利用for循环求1到100的和
  • python网络爬虫程序
  • python的pip安装命令
  • angular nz
  • ajax简单实例
  • Jquery uploadify上传插件使用详解
  • nodejs 加解密
  • linux查看shell脚本内容
  • shell脚本 -ne 0
  • PreferenceActivity与PreferenceFragment应用
  • python特性和属性
  • 广东电子税务局手机版
  • 地方税务局稽查局卢永胜
  • 公共配套设施如何计算成本
  • 划拨土地是否可以出租的法律规定
  • 小规模纳税人可以用专票抵扣税吗
  • 单位轿车出售怎么处理
  • 冯炜教授现况如何
  • 经济增长的术语
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号