好程序员web前端教程分享js模板模式
什么是模板模式?
模板模式是抽象父类定义了子类需要重写的相关方法。 而这些方法,仍然是通过父类方法调用的。 根据描述,“模板”的思想体现在:父类定义的接口方法。 除此之外,子类方法的调用,也是被父类控制的。
应用场景
一些系统的架构或者算法骨架,由“BOSS”编写抽象方法,具体的实现,交给“小弟们”实现。 而绝对是不是用“小弟们”的方法,还是看“BOSS”的心情。 不是很恰当的比喻哈~
ES6 实现
Animal是抽象类,Dog和Cat分别具体实现了eat()和sleep()方法。 Dog或Cat实例可以通过live()方法调用eat()和sleep()。
注意:Cat和Dog实例会被自动添加live()方法。不暴露live()是为了防止live()被子类重写,保证父类的控制权。
class Animal {
constructor() {
// this 指向实例 this.live = () => { this.eat(); this.sleep(); };
}
eat() {
throw new Error("模板类方法必须被重写");
}
sleep() {
throw new Error("模板类方法必须被重写");
}
}
class Dog extends Animal {
constructor(...args) {
super(...args);
}
eat() {
console.log("狗吃粮");
}
sleep() {
console.log("狗睡觉");
}
}
class Cat extends Animal {
constructor(...args) {
super(...args);
}
eat() {
console.log("猫吃粮");
}
sleep() {
console.log("猫睡觉");
}
}
/ 以下为测试代码 */
// 此时, Animal中的this指向dog
let dog = new Dog();
dog.live();
// 此时, Animal中的this指向cat
let cat = new Cat();
cat.live();
好程序员web前端分享
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
企业应用混合云网络解决方案
附件下载:https://yq.aliyun.com/download/3507
- 下一篇
远禾科技荣获CISP攻防领域授权培训机构
网络安全人才短缺已经成为一个全球性问题,随着网络安全和信息化工作的推进,我国网络安全行业人才荒形势更加严峻。近期,远禾科技荣获CISP攻防领域授权的培训机构,将负责专项招生、课程安排、数学指导与培训工作,积极助力网络安全专业人才培养。 CISP攻防领域考试中心隶属于中国信息安全测评中心,负责注册攻防领域考试开发维护、业务推广、考试认证、市场宣传等工作,开创国内首个渗透测试实操类职业技能认证,所涉及业务从渗透测试工程师、渗透测试专家到应急响应专家等多个专业安全方向,为国内打造一流网络安全人才提供了专业的技术指引和就业指导。 CISP-IRE 专为国家培养应急响应领域实用型高端技术人才 面对严峻的网络安全形势,在对网络攻击信息有效防护与应对方面,除了事先通过渗透测试有效掌握网络信息系统自身的脆弱性、并在受到攻击之前进行有效的加固和充分的防护以外,还需要能够在网络攻击事件发生的第一时间进行及时的响应,迅速确定事件的类型和危害级别,并果断采取有效措施加以遏制、根除和回复。 远禾科技通过对网络安全应急响应概念的介绍,从基础知识入手进行深入浅出的讲解,再结合网络安全应急响应实际工作中的监测、分析、...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Mario游戏-低调大师作品
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案