位置: 编程技术 - 正文

深入理解JavaScript系列(41):设计模式之模板方法详解(深入理解中国式现代化)

编辑:rootadmin

推荐整理分享深入理解JavaScript系列(41):设计模式之模板方法详解(深入理解中国式现代化),希望有所帮助,仅作参考,欢迎阅读内容。

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

介绍

模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

模板方法是一种代码复用的基本技术,在类库中尤为重要,因为他们提取了类库中的公共行为。模板方法导致一种反向的控制结构,这种结构就是传说中的“好莱坞法则”,即“别找找我们,我们找你”,这指的是父类调用一个类的操作,而不是相反。具体体现是面向对象编程编程语言里的抽象类(以及其中的抽象方法),以及继承该抽象类(和抽象方法)的子类。

正文

举个例子,泡茶和泡咖啡有同样的步骤,比如烧开水(boilWater)、冲泡(brew)、倒在杯子里(pourOnCup),加小料(addCondiments)等等。但每种饮料冲泡的方法以及所加的小料不一样,所以我们可以利用模板方法实现这个主要步骤。

首先先来定义抽象步骤:

深入理解JavaScript系列(41):设计模式之模板方法详解(深入理解中国式现代化)

该函数在原型上扩展了所有的基础步骤,以及主要步骤,冲泡和加小料步骤没有实现,供具体饮料所对应的函数来实现,另外是否加小料(customerWantsCondiments )默认返回true,子函数重写的时候可以重写该值。

下面两个函数分别是冲咖啡和冲茶所对应的函数:另外使用confirm,可以让用户自己选择加不加小料,很不错,不是嘛?

总结

模板方法应用于下列情况:

1.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现2.各子类中公共的行为应被提取出来并集中到一个公共父类中的避免代码重复,不同之处分离为新的操作,最后,用一个钓鱼这些新操作的模板方法来替换这些不同的代码3.控制子类扩展,模板方法只在特定点调用“hook”操作,这样就允许在这些点进行扩展

和策略模式不同,模板方法使用继承来改变算法的一部分,而策略模式使用委托来改变整个算法。

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

深入理解JavaScript系列():设计模式之职责链模式详解 介绍职责链模式(Chainofresponsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿

深入理解JavaScript系列():代码复用模式(避免篇)详解 介绍任何编程都提出代码复用,否则话每次开发一个新程序或者写一个新功能都要全新编写的话,那就歇菜了,但是代码复用也是有好要坏,接下来的

标签: 深入理解中国式现代化

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

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

下一篇:深入理解JavaScript系列(39):设计模式之适配器模式详解(深入理解新发展理念)

  • 2023年享受六税两费减免吗
  • 企业存款利息收入缴纳企业所得税吗
  • 销售货物开票及销售收入
  • 公司付给中间人居间费用如何纳税
  • 收回的伙食费计什么科目
  • 积分兑换开始啦
  • 企业合并股份比例
  • 已贴花的凭证凡修改后所载金额增加的部分应补贴印花
  • 快消品行业成本结转方法
  • 印刷品生产需要生产许可证吗?
  • 厂房消防安装图
  • 公司增资麻烦吗?
  • 汇算清缴补缴税分录
  • 小规模普票冲红怎么做账
  • 增值税专票的收款人必须是个人嘛
  • 免税农产品的范围有哪些
  • 增值税纳税表销售额的填写
  • 施工单位的项目
  • 文化传媒公司的经营模式怎么写
  • 收承兑汇票还要交税吗
  • 关于支付税审费的问题
  • 未来公司销售一批产品给东方公司
  • 销售退货成本如何计算
  • 购买原材料发生的采购费用计入
  • 港杂费是由谁收取
  • 所得税报表里的资产总额在哪里取数
  • 工会经费的开支必须取得发票么
  • win10指纹传感器在哪里
  • 苹果mac有hdmi
  • 怎么给自己的宽带改名字
  • linux桌面不见了
  • 使用时间
  • 抖音自动抢福袋挂机软件哪个好
  • mac睡眠后无法正常唤醒
  • 收到预付款计入什么科目
  • 有形动产增值税税率是多少
  • 父母将住房无偿赠送给子女 增值税
  • laravel视频教程
  • php7.3安装
  • 移民美国怎样加入医疗保险
  • 公允价值变动损益在利润表哪里
  • 发票密码什么意思
  • 更换电脑金税盘的数据如何导入新电脑
  • 前端向后端传递对象数组
  • 企业已开出的成本怎么算
  • 不跳槽怎么形容
  • 前端image
  • 公司注销退还股票流程
  • 增值税小规模纳税人适用3%征收率
  • python 动态
  • 退物业费如何记帐
  • 售出货物
  • 以长期股权投资换入存货
  • 债务重组损失如何做会计分录
  • 个体工商户生产经营所得税优惠政策
  • 职工福利费如何计提
  • 建筑业建议
  • 固定成本总额包含折旧吗
  • mysql 5.6新特性
  • 读取mysql binlog
  • win7系统如何关闭系统自检
  • windows导航栏在左边
  • microsoft onedrive怎么关闭
  • rundll32.exe是什么程序
  • userexperience是什么意思
  • service.exe是什么
  • synergy linux
  • perl调试
  • unity onbecameinvisible
  • webpack vue-loader
  • python 内连接
  • 怎样设置安卓等比例显示按钮
  • 在html中写入javascript
  • flask框架图
  • 好看的手写字纯文字
  • 电子税务局电子送达文书怎么签收
  • 绿化工程项目
  • 增值税申报表如何导出
  • 个体诊所可以申请医保报销吗
  • 税收优惠政策有哪些企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设