位置: 编程技术 - 正文

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

  • 一般纳税人劳务票一般开几个点
  • 小规模未达起征点的增值税怎么做账
  • 公司欠款利息收入需要交增值税吗?
  • 劳务费个人所得税怎样计算
  • 卷烟批发环节消费税税率
  • 未过户的车辆对车辆影响
  • 公司收承兑贴现的会计分录
  • 个人房租费收入怎么做账
  • 企业固定资产入账金额标准
  • 通用定额发票属于哪一类
  • 外币折算会计处理例题
  • 银行手续费发票怎么开
  • 收到外币计算税款的汇率是怎么算的?
  • 增值税税率
  • 员工被单位罚款须要问单位要收据吗
  • 企业为员工提供住宿会计科目
  • 受赠资产的价值和由捐赠企业负担的增值税
  • 外币折算差额怎么记账
  • 开票资料地址填营业执照
  • 耕地占用税与土地出让金
  • 股东收回投资款的现金流量
  • 所有者权是否益包括未交出资吗?
  • 进项税和销项税的分录
  • 鸿蒙系统怎么开发
  • 如何整理流水账目
  • 非一般纳税人可以抵扣吗
  • win11安装不显示wifi
  • info.exe
  • 艾叶泡脚的方法和注意事项
  • 期间费用在会计期末要转入
  • PHP:pg_field_size()的用法_PostgreSQL函数
  • pkjobs.exe - pkjobs是什么进程 有什么用
  • php dechex
  • 中国网购软件
  • 财务费用核算的内容没有
  • 最贵的手机号码值多少钱
  • 圣胡安岛战争
  • vue知识点总结
  • allegro器件移动不了
  • 报表上如何把账号删除
  • js如何转换为数值型
  • ChatGPT是如何训练得到的?通俗讲解
  • mysql分区实现
  • 不按发票金额付款说明
  • 应该如何打造自己
  • 股东转让股份会退股吗
  • 主营营业成本会计分录
  • opengl 图形
  • 留抵税额可以保留几年
  • python深拷贝与浅拷贝区别
  • SQL Server 2008用'sa'登录失败,启用'sa'登录的解决办法
  • 生活服务的行业
  • 小企业会计准则适用范围
  • 手工账做账流程总结
  • a公司持有b公司
  • 企业被收购会产生哪些税
  • 验资 银行
  • 如何调整以前年度错账
  • 小微企业和小规模纳税人的区别
  • 债务重组的方式主要包括哪些
  • 如何设计高效合理的未来课程
  • Windows 10 与 MySQL 5.5 安装使用及免安装使用详细教程(图文)
  • macbookpro隐藏
  • 一台电脑多个用户组怎么显示在一个屏幕上
  • 手把手教您安装软件
  • 2021年win10累积更新
  • win10 mobile 1709
  • openssl 用法
  • linux将文本写入文件
  • 新版电脑装win7
  • 批处理程序
  • unity shaderlab新手宝典
  • 批处理模式的例子
  • jquery自定义组件
  • Unity3D之Transform参数
  • 对xmlHttp对象方法和属性的理解
  • 深入理解javascript特性
  • javascript下拉列表怎么做
  • 契税房屋套数如何计算
  • 网上预约挂号能退吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设