位置: 编程技术 - 正文

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

  • 支付宝如何缴纳车辆购置税
  • 有形动产租赁服务税收分类编码
  • 扣缴义务人和纳税人举例
  • 教育培训行业税负率是多少
  • 旅游业小规模纳税人的认定标准是什么
  • 税金及附加没有什么税
  • 固定资产未付款怎么入账
  • 外资企业研发中心
  • 应收账款计提坏账比例
  • 开外管证再省外预缴税收要怎么报税?
  • 施工单位给你钱敢领吗
  • 折扣折让的销售方式有哪些
  • 代收水电费做错了该如何调账?
  • 福利费的发票可以开什么内容
  • 收以前年度租金
  • 汇总缴纳增值税附加税如何缴纳
  • 内账价税分离余额怎么处理
  • 挂靠经营的纳税人
  • 什么是城镇土地使用税
  • 发票丢失联次
  • 购买办公桌椅属于什么费用
  • 怎么向个体工商户贷款
  • 增值税小规模纳税人减免增值税政策
  • 人力资源劳务外包服务开票
  • 如何在win7中查找文件
  • 应纳消费税包不包括代收代缴
  • 物资销售经营范围
  • 白沙国家公园中标公告
  • 收到税务局退增值税及附加税怎么做账
  • 长期股权投资实现净利润计入什么科目
  • Yii2 assets清除缓存的方法
  • php加密zend
  • thinkphp,onethink和thinkox中验证码不显示的解决方法分析
  • cityscape dataset
  • vue更改数据
  • yolov5的使用
  • 2023跨年代码大全可复制免费
  • php获取位置
  • 银行存款利息收入会计分录怎么写
  • 小规模季度必须报税吗
  • 当月认证的发票可以撤销吗
  • 织梦是什么框架开发的
  • 运营级别划分
  • 商业保险可以从一家转到另一家吗
  • 福利费是工资的14%,这里工资是税前工资吗
  • 小规模购置金税盘抵税如何申报
  • 采购商品未入库已经付款会计分录
  • 税控设备抵减增值税金额
  • 进项和销项税月底有余额吗
  • 发票入账是借还是贷
  • 什么情况下增值税发票不能抵扣
  • 租赁出租人分录
  • 项目资本金如何确定
  • 金蝶专业版怎么反过账
  • 企业偿债能力的含义
  • sql server高级应用
  • mysql压缩包安装教程8.0.20
  • 存储过程mysql
  • 科普知识手抄报简单又漂亮
  • ubuntu写脚本
  • intel的me
  • windows8怎么隐藏任务栏
  • centos删除vg
  • win8.1技巧
  • windows的视频
  • win10预览体验计划不显示
  • win7系统的excel在哪里
  • cocos2djs
  • scrollview怎么用
  • dw中css规则定义中文
  • vue router routes
  • js原始值有哪些
  • python import怎么用
  • 安卓手机怎么设置自动化
  • js asc
  • flask框架图
  • jQuery插件是什么
  • 陕西省12366纳税服务热线
  • 重庆税务登记证在哪里办理
  • 成都车辆购置税2024年新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设